フォームを使用して、コントローラーのある部分から別の部分 (作成するのは初めて) にデータを転送していますが、問題が発生しています。フォームを送信した後にデータを取得しようとすると、nil 値が返されます。
フォームコードは次のとおりです。
<%= f.hidden_field :owner_id, :value => @tool.user_id %>
<%= f.hidden_field :tool_id, :value => @tool.id %>
<%= f.hidden_field :borrower_id, :value => current_user.id %>
そして、これはコントローラの create アクションです:
def create
render text: params[:rental_agreement].inspect
@rental_agreement = RentalAgreement.create
@rental_agreement.owner_id = params[:owner_id]
# render text: @rental_agreement.inspect
end
フォームの [送信] ボタンをクリックすると、次のように表示されます。
{"owner_id"=>"3", "tool_id"=>"1", "borrower_id"=>"4"}
それは問題ありませんが、どのインスペクションがレンダリングされるかを変更すると (一番上の行をコメントアウトし、一番下のコメントを外します)、表示されるのは次のとおりです。
#
Rails コンソールでこのオブジェクトを見ると、その中のすべてのフィールドが nil になっています (id フィールドと created_at フィールドを除く)。
フォームの変数 (owner_id、tool_id、brower_id) を Rental_agreement 変数に割り当てる方法を見つけようとしています。どんな助けでも大歓迎です!