Art*_*rty 35 ruby-on-rails render render-to-string
尝试执行以下操作
@message = render_to_string ( :sender => sender, :template => "template" )
Run Code Online (Sandbox Code Playgroud)
但是当在模板中访问@sender时,结果证明是nil:NilClass.如果我传递了正确的变量,请仔细检查,并且完全没问题.也许有其他方法将变量传递给render_to_string?
Pet*_*own 47
它可能是您正在使用的语法.尝试使用:locals
参数:
@m = render_to_string :template => "template", :locals => {:sender => sender}
Run Code Online (Sandbox Code Playgroud)
然后你只需要访问sender
(没有@
)作为模板内的局部变量.
Adi*_*ena 14
这是Jason Kim在一篇对我有用的评论中所写的解决方案:
ActionController::Base.new.render_to_string(
"user_mailer/welcome_email.html.erb", locals: { :@user => user}
)
Run Code Online (Sandbox Code Playgroud)
请注意:@user => value
.
在Rails 5(atm in beta)中:
ApplicationController.render(
file: 'path',
assigns: { foo: 'bar' }
)
Run Code Online (Sandbox Code Playgroud)
小智 5
尝试这个:
ac = ActionController::Base.new()
ac.render_to_string(:partial => 'path to your partial',:locals => {:varable => your variables})
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
24125 次 |
最近记录: |