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