我在comments_controller中有以下方法:
def plus
@post = Post.find(params[:post_id])
@comment = @post.comments.find(params[:comment_id])
@user = @comment.user
@comment.increment!(:plus)
@user.increment!(:plus)
respond_to do |format|
format.html { redirect_to post_path(@post) }
format.js
end
end
这只会为每条评论创建一个“+1”。现在,我还想将用户ID添加到注释属性plus_ids
中存储的用户ID数组中。但我不确定如何创建属性数组。
最好的方法是什么?我正在寻找仅仅更新属性的等价物:
@comment.update_attribute(:user_ids, 1)
是否有这样的事情?
@comment.update_array(:user_ids, current_user.id)
答案 0 :(得分:0)
在评论模型中定义
serialize :plus_ids, Array
这将允许plus_ids
充当attribute array
,然后您应该能够使用plus_ids作为属性。
要向plus_ids
数组添加元素,请在控制器操作中。
默认情况下,plus_ids
为nil
@comment.plus_ids ||= []
@comment.plus_ids << current_user.id
@comment.save