2010-12-02 6 views
5

J'essaie d'accéder à une ressource de l'application rails à partir d'une API (elle envoie une requête Application/XML GET) et je ne voudrais pas avoir à analyser le XML fichier.Ruby-on-Rails: Aide avec render: layout => false

Dans mon contrôleur de ressources que je donne les résultats suivants:

def get_resource 
    @my_resource = Resources.new 
    render :xml => @my_resource 
end 

qui produit un fichier XML comme prévu. Si je le remplace par:

render :layout => false 

mon API signale une erreur «modèle manquant». J'ai également essayé le suivant:

render :xml => @identity, :layout => false 

Mais la page rend quand même. Quelle est la bonne façon d'y arriver?

Répondre

9

Lorsque vous effectuez un rendu: xml, il n'utilise pas de mise en page car il n'utilise aucun modèle. En spécifiant: layout => false, vous indiquez aux rails de rechercher un modèle qui n'existe pas. Maintenant, si vous ne voulez pas analyser un fichier xml, alors vous avez quelques alternatives. Soit:

render :json => @my_resource 

ou

render :text => "My resource name is: #{@my_resource.name}" # Whatever you want 

Tout dépend de la façon dont vous voulez que le résultat de regarder, ce que votre API attend à recevoir. Donc, si vous ne trouvez pas cela utile, donnez un exemple de la façon dont vous voulez que la réponse apparaisse.

+0

Merci ce que je cherchais. – David

+1

Il y a aussi toujours 'render nothing: true' –

Questions connexes