0

Devise で JSON への応答を強制するにはどうすればよいですか?

コントローラーで認証が必要な場合

before_filter :authenticate_user!

JSONデータを投稿した場合、応答はJSONのみです。しかし、一部のコントローラーとアクションについては、Devise が常に JSON で応答するようにしたいと考えています。

編集

私は使っている

:token_authenticatable

だから私はすべての呼び出しに auth_token を渡しています:

curl --data "token=xyzHtPAFGuAuFiVWsxsZ&receipt=adsfadsfsdfdsf" http://0.0.0.0:3000/user/receipt

ただし、トークンが正しくない場合、応答は HTML リダイレクトです。

<html><body>You are being <a href="http://0.0.0.0:3000/users/sign_in">redirected</a>.</body></html>

その応答をJSONにしたい

4

2 に答える 2

0

あなたの質問を理解できたかどうかわかりませんが、これはあなたが探しているものかもしれません。次のように、コントローラー内に Respond_to を追加するだけです。

class MyController < ApplicationController
  respond_to :json

  ...
end
于 2012-11-28T03:16:01.733 に答える
0

目的の応答のコンテンツ タイプを定義する必要があります。

curl -X POST \
     -H "Content-Type:application/json" \
     -H "Accept:application/json \
     -d "token=xyzHtPAFGuAuFiVWsxsZ&receipt=adsfadsfsdfdsf" \
      http://0.0.0.0:3000/user/receipt

その他のパラメーターについては、 curlの man ページを参照してください。

于 2013-02-02T16:11:24.910 に答える