J'ai une application en cours d'exécution Rails 2.3.5 qui a une API JSON pour une grande partie de celui-ci.Comment remplacer le type MIME RJS dans Rails 2.3?
Un entrepreneur est entré et a travaillé sur l'application et a utilisé RJS dans quelques endroits. Certaines de ces actions de contrôleur qui utilisent RJS pour le site Web principal doivent également faire partie de l'API.
Le problème est que les requêtes API JSON déclenchent les réponses RJS, ce qui n'est pas ce que je veux. Je voudrais que les réponses RJS arrivent à partir d'un navigateur, mais quand il s'agit d'une demande d'API (comme en utilisant les en-têtes "application/json" Accept et Content-Type), je voudrais juste envoyer la réponse API.
D'après ce que je peux dire, Rails déclenche une réponse RJS pour tout type MIME qui implique javascript, à savoir
text/javascript l'application /JSON
etc.
est-il un moyen de forcer RJS à ne répondre qu'au texte/javascript? Ou y a-t-il une meilleure façon de résoudre ce problème?
Pour le rendre plus clair, j'ai le code qui ressemble à ceci:
def show
@dashboard = @user.dashboard
respond_to do |wants|
wants.html
wants.json { render :json => @dashboard }
end
end
Le problème est, il y a aussi un modèle show.rjs dans le dossier de vue pour ce contrôleur. Quand quelqu'un frappe l'API, je veux qu'elle rende les résultats de json, comme je l'ai indiqué ci-dessus, mais à la place, elle restitue le template show.rjs.
Comment puis-je m'assurer que les clients API obtiennent les résultats json que je veux, tout en laissant le modèle RJS s'afficher pour les personnes sur le site?