Sto costruendo una nuova app con 3.0.0.beta3. Ho semplicemente cerco di rendere un modello js.erb ad una richiesta Ajax per la seguente azione (in publications_controller.rb):Rails3 esegue il rendering di un modello js.erb con un tipo di contenuto text/html invece di text/javascript
def get_pubmed_data
entry = Bio::PubMed.query(params[:pmid])# searches PubMed and get entry
@publication = Bio::MEDLINE.new(entry) # creates Bio::MEDLINE object from entry text
flash[:warning] = "No publication found."if @publication.title.blank? and @publication.authors.blank? and @publication.journal.blank?
respond_to do |format|
format.js
end
end
Attualmente, il mio modello get_pubmed_data.js.erb è semplicemente
alert('<%= @publication.title %>')
il server risponde con il seguente
alert('Evidence for a herpes simplex virus-specific factor controlling the transcription of deoxypyrimidine kinase.')
che è perfettamente bene, tranne che nulla accada nel browser, probabilmente perché il tipo di contenuto della risposta è '/ html testo' inst ead di 'text/javascript' come dimostra l'intestazione di risposta parzialmente riprodotto qui:
Status 200
Keep-Alive timeout=5, max=100
Connection Keep-Alive
Transfer-Encoding chunked
Content-Type text/html; charset=utf-8
Si tratta di un bug o mi sto perdendo qualcosa? Grazie per l'aiuto!
Come si chiama 'get_pubmed_data'? In Rails 3 devi fare: '<% = link_to 'Clicca qui',: controller =>: publications,: action =>: get_pubmed_data,: remote => true%>' – Mischa
La chiamata a get_pubmed_data va bene, fatta attraverso una funzione javascript observ_field, con la destra '-Requested-With \t XMLHttpRequest'request Headers – Yannis