Rails-モデルの新しいレコードのID値を多くの関係に設定するにはどうすればよいですか?
-
12-10-2019 - |
質問
私はhas_manyとbelongs_to関係でレコードを作成しようとしています
ユーザーHasManyの投稿と投稿はユーザーに属します
@post = Post.new( params[:post], :user_id => current_user.id )
@post.save
しかし、私は間違った数の引数エラーを取得し続けています。
ポストモデルのuser_idフィールドを何らかの方法で自動的に設定できますか? Current_User呼び出しが出る場所であるDeviseを使用しています。
解決
さらにいくつかの方法:
@post = Post.new(params[:post])
@post.user_id = current_user.id
@post.save
または:
@post = current_user.posts.build(params[:post])
@post.save
他のヒント
マージします params[:post]
ハッシュ {:user_id => current_user.id}
:
@post = Post.new(params[:post].merge({:user_id => current_user.id}))
@post.save
見る Hash#merge
Simple Has_Manyを使用しており、Associationsにbelunks_to Associationを使用している場合、ユーザーテーブルにpost_id列が必要です。投稿テーブルにはuser_id列が必要です
それであなたはできる:
@post = Post.new(params[:post])
@post.user_id = session[:user_id] #or an equivalent.
@post.save
@user.posts << @post
所属していません StackOverflow