我用来在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
答案 0 :(得分:0)
更简单的方法,在rails应用中包含可评论的模型.. Railscasts for adding commentable
答案 1 :(得分:0)
哦,实际上非常简单。
comment = commentable.comments.create(:comment => params[:comment], :user => current_user)
如果您正在使用该功能,请添加:标题。
我不明白为什么这不是文档中提供的解决方案?我应该修改它以使用
create(comment_params)