2016-05-20 5 views
2

新しいメソッドから見つかったIDの値を取得するのに問題があります。作成する新しいメソッドからオブジェクトIDの値を取得する

新しい方法:@personの

def new 
    @vacation = Vacation.new 
    @vacation.person = @person 
end 

結果:vacation.person @

#<id: 1, first_name: ... > 

も良いです。 今のところすべてが順調です。 @ vacation.personがnilでも

#<Vacation id: ..., person_id: nil > 

しかし、今はnil @personです:

def create 
    @vacation = Vacation.new(vacation_params) 
end 

結果:しかし、この後、私は、フォームに記入して提出したときにクリックしてください。メソッドを作成するためにidの値を送る方法がわからない。

idを見つける方法。

before_action :set_person 

private 

def set_person 
    @person = Person.find(params[:id]) unless params[:id].blank? 
end 

vacation_params:

def vacation_params 
    params.require(:vacation).permit(:start_at, :end_at, :free, :reason, :person_id, :accepted) 
end 
+0

フォームを表示することはできますか? –

+1

フォームに入力していない場合は転記されませんので、フォームに非表示のフィールドがあるか、createメソッドでその人を追加してください。 –

+0

@ j-dexxご協力いただきありがとうございます。 –

答えて

1

私は隠しフィールドを追加することで、私の問題を解決しました。

= f.input :person_id, as: :hidden, input_html: { value: @person.id}