Пользовательские проверки Rails для ассоциаций - PullRequest
1 голос
/ 04 августа 2011

У меня есть пользователь.Пользователь может иметь много таблиц.Фактически, только 5.

В моей модели таблицы у меня есть

validate :max_tables

def max_tables
 if user.tables.count > 5
  errors[:base] << "You already have 5 tables."
 end
end

Это работает хорошо, и если я пытаюсь создать таблицу, а у моего пользователя уже есть 5, я получаю страницу, котораяговорит

ActiveRecord :: RecordInvalid в TablesController # create

Проверка не удалась: у вас уже есть 5 таблиц.

Но я не перенаправлен обратнона страницу новой таблицы с отображением ошибок, как если бы другие проверки не были выполнены.По какой-то причине я застреваю на этой странице с серьезными ошибками.

Есть идеи?

РЕДАКТИРОВАТЬ: РЕШЕНО

Я генерировал короткий URL в обратном вызове after_create, итам я звонил save!

Как только я это исправил, все было хорошо.Так что спасибо @ house9!

Ответы [ 2 ]

0 голосов
/ 04 ноября 2011

РЕДАКТИРОВАТЬ: РЕШЕНО Я генерировал короткий URL в обратном вызове after_create, и там я вызывал save!

Как только я это исправил, все было хорошо. Так что спасибо @ house9!

0 голосов
/ 04 августа 2011

Использовать errors.add_to_base "You already have 5 tables." - в моем самом старом и самом большом приложении я использую errors.add_to_base и return false - возможно, возврат не требуется, но я его не проверял.

...