我用来在 Post 对象上创建评论的当前控制器代码是这样的:
commentable = @post
comment = commentable.comments.create
# comment.title = params[:title] #Title not needed
comment.comment = params[:comment][:comment]
comment.user = current_user
gon.post_id = @post.id #for javascript
if comment.save
....
这也是文档中推荐的方式。
有没有办法通过将参数传递给 .create 函数来做到这一点,比如
(user = current_user ....)
这避免了在创建时对数据库进行 2 次调用,从而提高了性能。
此外,如果您使用 public_activity gem,它也会使事情变得更容易。因为每次我写评论时,它都会在我的数据库中添加一个 Created 和 Updated 活动。
纳克斯