Rails-モデルの新しいレコードのID値を多くの関係に設定するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/4517033

質問

私は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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top