Общая функция для self.errors.add_to_base в рельсах - PullRequest
1 голос
/ 11 июня 2010

В каждой моей модели у меня есть 10 или более строк для self.errors.add_to_base. Есть ли другой способ, которым я могу управлять этими линиями более простым способом? Можно ли будет управлять этими ошибками с помощью какой-либо общей функции, которая может обрабатывать self.errors.add_to_base для любой моей модели?

 Function like
 def error_add_to_base(message,conditions)
   self.errors.add_to_base(message) if eval("#{conditions}")
 end

1 Ответ

1 голос
/ 08 августа 2011

Я думаю, что OP спрашивает, существует ли вспомогательный метод rails, который можно вызывать вместо определения обратных вызовов для каждой модели, когда возникает необходимость (пользовательской) проверки. Поэтому вместо использования помощника validate он будет вызывать такого помощника, чтобы сообщать об ошибках, которые связаны не с каким-либо конкретным атрибутом, а с экземпляром модели, «в целом».

И если бы я должен был ответить на его вопрос: нет, такой «общей функции» не существует. Что не так с:

validate :must_meet_my_business_logic

def :must_meet_my_business_logic
errors.add(:base, "blah!") if...
end

в любом случае?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...