Rails-如何设置模型新记录的ID值有许多/属于关系?
-
12-10-2019 - |
题
我正在尝试创建一个记录,该记录在has_many中,属于关系
用户hasmany帖子和帖子属于用户
@post = Post.new( params[:post], :user_id => current_user.id )
@post.save
但是我一直遇到错误的参数错误。
我可以以某种方式自动设置邮政模型的USER_ID字段吗?我正在使用deaise,这是current_user呼叫的来源。
解决方案
另外几种方法:
@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
如果您使用的是简单的has_many,并且allats_to关联,则用户表中不需要post_id列。帖子表中只需要一个用户_ID列
您可以这样做:
@post = Post.new(params[:post])
@post.user_id = session[:user_id] #or an equivalent.
@post.save
@user.posts << @post
不隶属于 StackOverflow