在注释模型中将用户ID添加到数组

时间:2015-03-05 20:02:07

标签: ruby-on-rails ruby-on-rails-4

我在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)

1 个答案:

答案 0 :(得分:0)

在评论模型中定义

serialize :plus_ids, Array 

这将允许plus_ids充当attribute array,然后您应该能够使用plus_ids作为属性。

要向plus_ids数组添加元素,请在控制器操作中。

默认情况下,plus_idsnil

@comment.plus_ids ||= []
@comment.plus_ids << current_user.id 
@comment.save