J'essaie d'avoir une réponse JSON dans laquelle une valeur est bloquée par un fichier html par un mais je reçois l'erreur suivante: p> disclaimer = {
"html":"<%= raw escape_javascript(render :partial => 'projects/disclaimer') %>"
}
4 Réponses :
Je ne suis pas sûr que je vous ai bien compris, mais peut-être que vous pouvez jouer avec le type de contenu comme celui-ci:
disclaimer = { "html":"<%= raw escape_javascript(render :partial => 'projects/disclaimer', :content_type => 'text/html'), :locals => {:localVariable => @localVariable} %>" }
Non Non, je pense que vous êtes juste sur l'argent: les rails sont invités à servir JSON, alors tout ce qu'il sert, y compris les rendus devront être JSON et non html.erb. Donc, lorsque je demande un partial.html.erb à l'intérieur de la réponse, il jette une erreur disant que partital.json.erb introuvable. Chose étrange est, si je demande .js (JSONP?) Dans l'en-tête, ce qui signifie que les rails devraient servir toutes partielles dans .js.erb se terminant, mais cette fois, cela ne serait pas dérangeant servir .html.erb et ne dira pas Ce n'est pas trouvé. C'est une incohérence dans mon opinion ... mais après avoir ajouté le: content_type => 'Texte / html', il jette toujours cette même erreur
obtenu: tout un besoin est cette ligne dans le fichier .json.erb <% autoformats = ["html"]%>
donc l'index complet.json.erb p>
Cette approche fonctionne également de l'intérieur d'un contrôleur qui rendu JSON; Je définis self.formats = [: html] code>, puis
rendu_to_string (: partielle => 'an_html_parttiale',: locaux => {: tout ce que oui}) code>, et Ensuite, je peux rendre Json Fine.
Si vous avez également d'autres partiels JSON, vous voudrez peut-être faire self.formats + = [: html] code> à la place.
Ma réponse est similaire à celle de Nik ci-dessus. J'ai l'aide suivante pour les modèles JSON.ERB:
{ "html": <%=json render_html(:partial => 'some_partial') %>, "status": success }
Pour les futurs lecteurs, vous pouvez transmettre des formats paramètres comme celui-ci.
= render partial: 'user', locals: {xyz: @xyz}, :formats => [:html]