ruby-on-rails - render_to_string - render json rails
¿Cómo pasar variables a render_to_string? (5)
Aquí está la solución de Jason Kim que escribió en un comentario que funcionó para mí:
ActionController::Base.new.render_to_string(
"user_mailer/welcome_email.html.erb", locals: { :@user => user}
)
Tenga en cuenta el :@user => value
bit de :@user => value
.
En Rails 5 (atm en beta):
ApplicationController.render(
file: ''path'',
assigns: { foo: ''bar'' }
)
Intentando hacer lo siguiente
@message = render_to_string ( :sender => sender, :template => "template" )
Pero al acceder a @sender en la plantilla, resulta ser nil: NilClass. Comprobado dos veces si paso la variable correcta y está totalmente bien. Tal vez hay otra forma de pasar variables a render_to_string?
En los rieles 4.0.2 esto funcionó:
render_to_string(partial: ''path/to/partial'', locals: { argument: ''value''}
Estaba tratando de renderizar un formato diferente de parcial en render_to_string. Lo que realmente funcionó para mí fue:
render_to_string (: partial => ''partial_file.html'',: locals => {: variable => variable},: format =>: html)
donde el nombre del archivo era _partial_file.html.erb
.
Prueba esto:
ac = ActionController::Base.new()
ac.render_to_string(:partial => ''path to your partial'',:locals => {:varable => your variables})
Puede ser la sintaxis que estás usando. Intenta usar el argumento: :locals
:
@m = render_to_string :template => "template", :locals => {:sender => sender}
Entonces solo necesita acceder al sender
(sin un @
) como una variable local dentro de la plantilla.