现在我正在开发一个具有模型的 Rails 应用程序,Event
并且该模型具有Category
模型作为嵌套属性。
我的Event
模型有一个state
属性,如果它的嵌套类别达到特定数量,则该属性必须更改为某个值。
我尝试使用模型after_update
中的回调来做到这一点Event
,但没有奏效。有人有什么主意吗?
现在我正在开发一个具有模型的 Rails 应用程序,Event
并且该模型具有Category
模型作为嵌套属性。
我的Event
模型有一个state
属性,如果它的嵌套类别达到特定数量,则该属性必须更改为某个值。
我尝试使用模型after_update
中的回调来做到这一点Event
,但没有奏效。有人有什么主意吗?
为什么它不起作用?可能是因为它达到了最大递归级别。尝试这样的事情:
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