Rails - 如何在具有多个/属于关系中设置模型新记录的 id 值?
我正在尝试创建一条记录,在 has_many 和 Belongs_to 关系中,
用户有很多帖子和属于用户的帖子,
@post = Post.new( params[:post], :user_id => current_user.id )
@post.save
但我不断收到参数数量错误的错误。
我可以以某种方式自动设置 Post 模型的 user_id 字段吗?我正在使用 Devise,这是 current_user 调用的来源。
I'm trying to create a record that in in a has_many and belongs_to relationship
user hasmany posts and posts belongto user
@post = Post.new( params[:post], :user_id => current_user.id )
@post.save
but I'm keep getting a wrong number of arguments error.
Can i set the user_id field of the Post model automatically somehow? I'm using Devise which is where the current_user call comes from.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
还有几种方法:
或者:
A couple more ways:
Or:
将
params[:post]
哈希与{:user_id => 合并current_user.id}
:请参阅
Hash#merge
Merge the
params[:post]
hash with{:user_id => current_user.id}
:See
Hash#merge
如果您使用简单的 has_many 和 Belongs_to 关联,则用户表中不需要有 post_id 列。 posts 表中只需要有一个 user_id 列,
您可以执行以下操作:
If you're using simple has_many and belongs_to associations there needn't be a post_id column in the users table. There need only be a user_id column in the posts table
With that you can do :