我可以创建acts_as_commentable而不进行更新吗?

时间:2014-09-03 11:02:21

标签: ruby-on-rails ruby-on-rails-4 acts-as-commentable

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

Thnaks

2 个答案:

答案 0 :(得分:0)

更简单的方法,在rails应用中包含可评论的模型.. Railscasts for adding commentable

答案 1 :(得分:0)

哦,实际上非常简单。

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

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

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

create(comment_params)