Comment passer des variables à render_to_string?
Essayer de faire la suite
@message = render_to_string ( :sender => sender, :template => "template" )
Mais lors de l'accès à @expéditeur dans le modèle, il s'avère être nil:NilClass. Vérifié si je passe le droit variable et il est tout à fait bien. Peut-être il ya d'autres façon de faire passer des variables à render_to_string?
Vous devez vous connecter pour publier un commentaire.
Il pourrait être la syntaxe que vous utilisez. Essayez d'utiliser le
:locals
argument:Ensuite, vous avez juste besoin d'accéder à
sender
(sans@
) comme une variable locale à l'intérieur du modèle.@sender
de votre point de vue. Pas sûr au sujet de votre code d'origine, mais si vous utilisez les habitants de la syntaxe, il sera une variable locale (pas une variable d'instance) et sera accessible sans le@
render_to_string
de modèle. Afin d'utiliser comme variable d'instance, j'ai eu à faireActionController::Base.new.render_to_string(:template => "template", :locals => {:@sender => sender})
Voici Jason Kim's solution qu'il a écrit dans un commentaire qui a fonctionné pour moi:
Veuillez garder à l'esprit la
:@user => value
peu.Dans les Rails 5 atm (en version bêta):
Plus ici
J'ai essayé de rendre un format différent de la partielle dans render_to_string. La chose qui a vraiment fonctionné pour moi a été:
où le nom du fichier a été
_partial_file.html.erb
.Essayez ceci:
Dans les rails 4.0.2 cela a fonctionné: