こんにちはスタックオーバーフローが、動作していないコンテンツネゴシエーションはrespond_toスタンザで
def show
# Translating ID to event
@event = Event.find(params[:id])
respond_to do |format|
format.html
format.json { render :json => @event }
end
end
べきたびAccept
ヘッダがtext/html
に設定されている場合、HTML応答を生成し、JSON(私がオンラインで読む内容に応じて)このコードヘッダーはapplication/json
に設定されています。しかし、私がPostmanでこれをテストするたびに、私はいつも最初に設定されたリソースの表現を得ることになります。
acceptヘッダーがJsonのみに設定されている場合でも、上記のコードではhtmlになります。私がそれらを回すと、私はヘッソンを何を設定するかに無関係に、json表現を得る。
私はRubyを少し新しくしており、do |x| do_a() do_b()
構文/スタンザが何であるかを完全に理解したいと思います。これはSwitch文またはそれ以上のラムダのようなものですか?
'?format = json'または' .json'をURLに追加しましたか?そうであれば、Acceptヘッダがそうでない場合でもフォーマットはjsonになります。 – yoones
@Yoonesいいえ、私は持っていません。しかし、クライアントが無限の形式で1つのURL上のリソースを要求できるというコンテンツネゴシエーションのポイントはありませんか?例:Accept:text/htmlのdomain.com/myPoemは、人間が読めるHTMLバージョンとdomain/myPoemをAcceptで返すべきです:application/jsonは私のbeautifull poemをJSON表現で返しますか? – MrKickkiller
あなたは正しいですが、あなたのアプリケーションのルートで、必要に応じて( 'rake routes'を実行するときに表示される'(。:format) ') – yoones