Я работаю над JSON на основе API для моего приложения Rails 3.1. Я хотел бы предоставить настраиваемый ответ об ошибке вместо значения по умолчанию, а именно:
{"error":"You need to sign in or sign up before continuing."}
Мой контроллер API включает вызов before_filter для Authenticate_user!
, который отображает этот ответ JSON.
Во время поиска я наткнулся на этот вопрос StackOverflow , который ссылается на эту вики-запись Devise . К сожалению, запись в вики недостаточно подробна, чтобы я мог понять, о чем она мне говорит. В частности, я понятия не имею, куда я должен поместить этот код, чтобы Devise / Warden знал, что нужно вернуть то, что я хочу.
Судя по комментариям к другому вопросу SA, мне не нужно вызывать custom_failure!
, поскольку я использую версию Devise выше 1.2 (точнее, 1.4.2). Однако в вики-статье не объясняется, куда должен идти вызов render
, чтобы Authenticate_user!
знает, как использовать это вместо собственного вызова рендеринга.
Куда идет этот вызов render
?
Edit: Я не просто пытаюсь изменить само сообщение (например, конфигурация devise en.yml
); Я пытаюсь изменить фактический формат ответа. В частности, я хочу вернуть это:
render :text => "You must be logged in to do that.", :status => :unauthorized