на предыдущий вопрос я искал способ
динамическая проверка моих моделей.
Рекомендации по валидации "Динамической" модели
Решение, которое я получил, это:
def after_initialize
singleton = class << self; self; end
validations = eval(calendar.cofig)
validations.each do |val|
singleton.class_eval(val)
end
end
В моем реальном приложении у меня есть 2 модели
class Calendar < ActiveRecord::Base
has_many :events
end
class Event < ActiveRecord::Base
belongs_to :calendar
def after_initialize
singleton = class << self; self; end
validations = eval(calendar.cofig)
validations.each do |val|
singleton.class_eval(val)
end
end
end
Как видите, код проверки, который должен быть добавлен в класс Event, находится в поле календаря "config".
Отлично работает для существующего события, но не для новой записи. Это потому, что во время вызова after_initialize ассоциация еще не существует.
Я не могу найти способ сделать это, кроме помещения значений конфигурации в само событие.
Есть какие-нибудь советы?
Tks!