Как регистрировать исключения из модели, а также отображать сообщение об ошибке для пользователя? - PullRequest
1 голос
/ 21 декабря 2010

Учитывая, что пользователь хочет пометить элемент задачи как выполненный: @user.mark_todo_item_completed "xyz"

Следующие правила применяются методом mark_todo_item_completed:

  1. Элемент todo принадлежит пользователю
  2. Элемент todo еще не отмечен как завершенный

    и т.д.

Теперь предположим, что какой-то пользователь, который не «владеет» этим элементом todo, использует cURL или что-то еще, чтобы попытаться обновить этот элемент todo. Правила моделей поймают это и сгенерируют исключение.

У меня вопрос: если я выбрасываю исключение из модели (а также записываю его в файл журнала), как мне также показать сообщение об ошибке пользователю (скажем, общее сообщение типа «Не удалось обновить элемент todo»)?

Что такое "путь"?

1 Ответ

1 голос
/ 22 декабря 2010

Прежде всего, вы не должны повышать исключение в модели.Ответ: например в вашем контроллере приложения:

if Rails.env != 'development'
  rescue_from Acl9::AccessDenied, :with => :access_denied
end



def access_denied(exception)
    flash[:notice] = 'Access denied'
    redirect_to root_path, :message => { :notice => 'Access denied' }
  end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...