Rails嵌套属性回调

时间:2012-07-16 16:25:34

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

现在我正在使用具有Event模型的Rails应用,此模型将Category模型作为嵌套属性。

我的Event模型具有state属性,如果嵌套类别达到特定数量,则必须更改为特定值。

我尝试使用after_update模型中的Event回调来执行此操作,但它无效。有没有人有任何想法?

1 个答案:

答案 0 :(得分:0)

为什么它不起作用?可能是因为它达到了最大递归水平。 尝试这样的事情:

class Event < ActiveRecord::Base
  attr_accessor :category_count_state_updated
  has_many :categories
  accepts_nested_attributes_for :categories
  attr_accessible :categories_attributes
  after_update :update_state

  private
    def update_state
      unless self.category_count_state_updated
        self.state = 'categories_count_reached' if self.categories.count == 5
        self.category_count_state_updated = true
        self.save
      end
    end
end