Ruby-on-Rails: Aiuto con il rendering: layout => false
-
30-09-2019 - |
Domanda
Sto cercando di accedere a una risorsa di rotaie app da un'API (invia un / richiesta GET applicazione XML) e vorrei non dover analizzare il file XML.
In mie risorse regolatore Ho il seguente:
def get_resource
@my_resource = Resources.new
render :xml => @my_resource
end
che produce un file XML come previsto. Se lo sostituisco con:
render :layout => false
il mio API segnala un "modello mancante" errore. Ho anche provato il seguente:
render :xml => @identity, :layout => false
Ma la pagina rende in ogni caso. Qual è il modo giusto per andare su questo?
Soluzione
Quando si esegue il rendering: xml, non utilizza un layout in quanto non utilizza alcun modello sia. Specificando: layout => false, si raccontano le rotaie di cercare un modello che non esiste
.Ora, se non si vuole analizzare un file XML, quindi avete un paio di alternative. O:
render :json => @my_resource
o
render :text => "My resource name is: #{@my_resource.name}" # Whatever you want
Tutto dipende da come si desidera che il risultato allo sguardo, ciò che il vostro API si aspetta di ricevere. Quindi, se non trovate nulla di tutto questo utile, dare un esempio di come si desidera che la risposta al look.
Altri suggerimenti
def get_resource
@my_resource = Resources.new
respond_to do |wants|
wants.xml { render :xml => @my_resource }
wants.html { render :layout => false }
end
end
Leggi questo articolo: http://tokumine.wordpress.com/2009/09/13/how-does-respond_to-work-in-the-rails-controllers/