Rails 3.1 アプリ用の JSON ベースの API に取り組んでいます。デフォルトの代わりにカスタムの失敗応答を提供したいと思います。
{"error":"You need to sign in or sign up before continuing."}
authenticate_user!
私の API コントローラーには、この JSON 応答をレンダリングする before_filter への呼び出しが含まれています。
検索中に、この Devise wiki エントリを参照するこの StackOverflow questionに出くわしました。残念ながら、この wiki エントリは、私が何を言っているのかを理解するのに十分なほど詳細ではありません。具体的には、Devise/Warden が私が返したいものをレンダリングすることを知っているように、そのコードをどこに置くべきか手がかりがありません。
他の SA の質問に関するコメントから、custom_failure!
1.2 (具体的には 1.4.2) より上のバージョンの Devise を使用しているため、電話する必要がないように思えます。ただし、ウィキのエントリには、独自のレンダリング呼び出しの代わりにそれを使用することrender
を知っているような呼び出しがどこに行くべきかが説明されていません。authenticate_user!
render
この通話はどこに行きますか?
編集:メッセージ自体を変更しようとしているだけではありません(デバイス構成のようなものen.yml
です)。応答の実際の形式を変更しようとしています。具体的には、これを返したい:
render :text => "You must be logged in to do that.", :status => :unauthorized