1

Ryan Bates のすばらしいチュートリアルに従って、Facebook の Open Graph を実装しました: http://railscasts.com/episodes/363-facebook-open-graph

しかし、Facebook がogパラメーターを取得するためにサイトをスクレイピングしているときに、JSON 形式を求めているようです。他の目的でデータを返すために既に JSON を使用しているため、これは問題です。経由で Facebook のデータを返すことは問題ありませんformat.html。リクエスト オブジェクトを確認したところ、次の ACCEPT ヘッダーが表示されました。

'HTTP_ACCEPT' */*

ただし、それによりアプリが実行されformat.jsonます。私はフォーマット応答の順序をいじってみましたが、まだ要求していますformat.json

respond_with(@project) do |format|
    format.html { render 'show'}
    format.json { render 'show'}
    format.js { render 'show'}
end

何か案は?

4

2 に答える 2

4

多くの試行錯誤の後、Accept Header が であることがわかりました*/*。 を使用している場合は、コントローラーの上部にある が必要な順序と一致しrespond_withていることを確認する必要がありrespond_toます... 私の場合、正解です:

class ProjectsController < ApplicationController
  respond_to :html
  respond_to :json
  respond_to :js,
  ...

そして、これはそうではありません

class ProjectsController < ApplicationController
  respond_to :json
  respond_to :html
  respond_to :js,
  ...
于 2012-08-23T20:31:53.647 に答える