我正在尝试创建一个记录,该记录在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

Hash#merge

如果您使用的是简单的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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top