0

现在我正在开发一个具有模型的 Rails 应用程序,Event并且该模型具有Category模型作为嵌套属性。

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

我尝试使用模型after_update中的回调来做到这一点Event,但没有奏效。有人有什么主意吗?

4

1 回答 1

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
于 2012-07-16T16:44:19.787 回答