Я новичок в rails, и у меня есть вопрос о том, как наилучшим образом обеспечить выполнение пользовательских правил для ассоциаций моих моделей.
Например, предположим, что у меня есть:
class Person < ActiveRecord::Base
belongs_to :organization
end
class Organization < ActiveRecord::Base
has_many :people
end
и сейчасПредположим, что я хочу разрешить выполнение команды Organization.people << Person.new(...)
только в том случае, если новый объект Person
совместим с другими people
, которые ранее были добавлены в Organization
.Это повлечет за собой проверку правильности всех существующих элементов Organization.people
и принятие решения о том, можно ли добавить новый Person
или нет.
Мне кажется, что я могу сделать это, переопределив все Organization.people
операторы присваивания (такие как <<
и =
) и помещение моей логики проверки в процедуру переопределения.
Это лучший способ сделать это?
Спасибо!