Question

Je suis en train d'accéder à une ressource rails application d'une API (il envoie une requête GET Application / XML) et je voudrais ne pas avoir à analyser le fichier XML.

Dans mes ressources contrôleur j'ai les suivantes:

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 aussi essayé ce qui suit:

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

Mais la page rend de toute façon. Quelle est la bonne façon de faire à ce sujet?

Était-ce utile?

La solution

Lorsque vous render: xml, il n'utilise pas de mise en page, car il n'utilise pas non plus de modèle. En spécifiant: layout => false, vous dites rails pour trouver un modèle qui n'existe pas

.

Maintenant, si vous ne voulez pas analyser un fichier xml, alors vous avez quelques solutions de rechange. 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 tout cela utile, donner un exemple de la façon dont vous voulez la réponse à regarder.

Autres conseils

def get_resource
  @my_resource = Resources.new
  respond_to do |wants|
    wants.xml { render :xml => @my_resource }
    wants.html { render :layout => false }
  end
end

Lire cet article: http://tokumine.wordpress.com/2009/09/13/how-does-respond_to-work-in-the-rails-controllers/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top