Много / перекрестная проверка моделей? - PullRequest
0 голосов
/ 04 декабря 2011

Так что в моем приложении у меня есть:

  • Modela
  • ModelB
  • моделька
  • ModelD

В моем контроллере для ModelA я создал пользовательскую функцию под названием is_verified. В is_verified я вызываю множественные поиски activerecord по ModelA / B / C / D, чтобы получить определенные фрагменты строк данных, провести некоторое сравнение и, если условные условия пройдены, is_verified возвращает «true», а функция передает «false» и выплевывает некоторые ошибки пользователю

Хотя то, что я делаю, просто и выполняет свою работу, я вполне уверен, что не рекомендуется использовать несколько таблиц и выполнять условия для проверки моей функции из контроллера.

Какова лучшая практика для выполнения кросс-модельных проверок, как в моей ситуации выше.

1 Ответ

0 голосов
/ 04 декабря 2011

Я бы перенес валидацию в модель.Я также создал бы несколько связанных с проверкой методов для каждой модели и просто вызвал бы их.

В идеале модель А должна иметь что-то вроде:

def valid?
  B.valid?(self) && C.valid?(self) && D.valid?(self)
end

Затем каждая из ваших моделей, когда передается экземплярof A, можно увидеть, есть ли у них какая-либо причина, по которой этот экземпляр не должен быть действительным.

Попытайтесь разделить проверку как можно более детализированной, чтобы ее было проще тестировать / проверять.

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