Несанкционированный ответ Custom Devise 401

Я работаю над 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

19
задан Community 23 May 2017 в 11:54
поделиться