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 に答える