现在我正在使用具有Event
模型的Rails应用,此模型将Category
模型作为嵌套属性。
我的Event
模型具有state
属性,如果嵌套类别达到特定数量,则必须更改为特定值。
我尝试使用after_update
模型中的Event
回调来执行此操作,但它无效。有没有人有任何想法?
答案 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