0

我用来在 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 活动。

纳克斯

4

2 回答 2

0

哦,其实很简单。

 comment = commentable.comments.create(:comment => params[:comment], :user => current_user)

如果您正在使用该功能,请添加 :title 。

我不明白为什么这不是文档中提供的解决方案?我可能应该修改它以使用

create(comment_params) 
于 2014-09-03T14:11:21.463 回答
0

在 Rails 应用程序中包含可评论模型的更简单方法.. Railscasts 用于添加可评论

于 2014-09-03T11:53:53.140 回答