ActiveRecord DeleteRestrictionError - PullRequest
       0

ActiveRecord DeleteRestrictionError

4 голосов
/ 22 июля 2011

Page.rb

has_many :comments, :dependent => :restrict

Эта проверка повышает

PagesController# (ActiveRecord::DeleteRestrictionError) "Cannot delete record because of `dependent comments"`

Есть ли способ показать его как флэш-сообщение или с другими сообщениями проверки .?

Ответы [ 2 ]

14 голосов
/ 22 июля 2011

Используйте begin / rescue, чтобы перехватить это исключение, а затем добавить сообщение об ошибке в базу ошибок для страницы ... мой синтаксис выключен, но что-то вроде ...

begin
  @page.destroy
rescue ActiveRecord::DeleteRestrictionError => e
  @page.errors.add(:base, e)
end
5 голосов
/ 07 апреля 2015

Вы также можете справиться с этим в контроллере приложений, если вы не хотите устанавливать блоки восстановления на многих из ваших контроллеров.

Контроллеры / application_controller.rb

rescue_from ActiveRecord::DeleteRestrictionError do |exception|
  redirect_to(:back, :alert => exception.message)
end

Он будет перенаправлен на страницу или ресурс, с которого поступил запрос, и покажет предупреждение.

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