将用户分配给嵌套模型

时间:2014-04-30 10:26:01

标签: ruby-on-rails ruby-on-rails-3 rails-activerecord nested-attributes

我在我的应用程序中有接受评论的产品,我希望用户能够对产品(创建,更新......)进行操作,并且每个操作都应该有评论。

因此,评论是产品的嵌套属性。

accepts_nested_attributes_for :comments, reject_if: proc { |comment| comment['text'].blank? }

我的问题是我希望评论知道哪个用户创建了它们,所以我在模型中添加了一个before_validation钩子,将当前用户分配给评论:

  before_validation :assign_current_user
  ...
  private
  def assign_current_user
    user = Thread.current[:current_user]
  end

但这不起作用,因为Thread.current[:current_user]会返回nil

我知道在模型中我不应该引用current_user,虽然我不知道如何将当前用户传递给nested_attribute,因为我不希望user_id属于attr_accessible元素(我不希望用户与谁创建评论进行调整)。

所以我不确定这样做的正确方法是什么。

谢谢,

0 个答案:

没有答案