Things
この例では、Person
can haveの数を 5 に制限したいと思います。
class Person < ActiveRecord::Base
has_many :things
def things_limit_reached?
self.things.count >= 5
end
end
true を返すThing
ときに new にエラーを追加します。person.things_limit_reached?
class Thing < ActiveRecord::Base
belongs_to :person
validate :limit_check, :on => :create
def limit_check
errors.add :base, 'Things limit reached.' if person.things_limit_reached?
end
end
Thing
悲しいことに、制限にまだ達していなくても、既存の を保存しようとすると、上記のコードは次の例外をスローします。
SystemStackError (stack level too deep):
actionpack (3.2.7) lib/action_dispatch/middleware/reloader.rb:70
私は何が欠けていますか?