with render_to_string rails how from ruby-on-rails render render-to-string

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'' } )

Más aquí

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.