Написание приложения на Rails. Я хотел бы сделать несколько более часто используемых проверок доступными для моих моделей. Я понимаю, как сделать встроенные проверки и как написать свои собственные методы. Однако я нахожу, что я использую одни и те же проверки в нескольких местах, и неудобно использовать миксины в разных классах.
Вот пример: у меня есть объект с prop1 и prop2. Любой из них действителен, но недействителен для установки обоих. Прямо сейчас у меня есть что-то вроде
class MyClass < ActiveRecord::Base
attr_accessor :prop1, :prop2
validate :prop1_prop2_mutex
def prop1_prop2_mutex
errors.add(:base, "Can not set prop1 and prop2") if prop1 && prop2
end
end
То, что я действительно хотел бы иметь, это что-то вроде
class MyClass < ActiveRecord::Base
attr_accessor :prop1, :prop2
validate_mutex :prop1, :prop2
end
а потом еще где-то, наверное, мне нужно что-то вроде
def validate_mutex(property1, property2)
rrors.add(:base, "Can not set prop1 and prop2") if self.send(property1) && self.send(property2)
end
Это может быть не так близко.
Итак, как мне создать новый метод проверки многократного использования?
Или есть лучший способ решить эту проблему?
Пожалуйста, будьте общими. У меня есть несколько примеров этой проблемы в разных формах. Хотя я был бы признателен за очень простое встроенное решение для этого примера, у меня есть более сложные проверки, к которым я хотел бы применить решение.