2012-08-23 3 views
1

J'ai mis Open Graph de Facebook par tutoriel impressionnant de Ryan Bates: http://railscasts.com/episodes/363-facebook-open-graphFacebook Open Graph action + Rails: JSON retour ou HTML

Cependant, lorsque Facebook râpe mon site pour récupérer les og paramètres, il ressemble à c'est demander le format JSON. C'est un problème car j'utilise déjà JSON pour renvoyer des données à d'autres fins. Je suis ok renvoyer des données pour Facebook via format.html. J'ai vérifié l'objet de la demande et je vois cette tête Accept:

'HTTP_ACCEPT' */* 

Cependant, qui est la cause de mon application à exécuter format.json. J'ai joué avec l'ordre des réponses de format et il demande toujours format.json.

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

Des idées?

Répondre

4

Après beaucoup d'essais et d'erreurs, je me suis dit que avec un en-tête Accept de */*, et si vous utilisez respond_with, vous devrez vous assurer que le respond_to en haut du contrôleur correspond à l'ordre que vous voulez ... Dans mon cas, cela est correct:

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

et ce ne sont pas

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

Great! Cela m'a sauvé quelques maux de tête. – FernandoEscher