以下を実行しようとしています
@message = render_to_string ( :sender => sender, :template => "template" )
しかし、テンプレートで@senderにアクセスすると、nil:NilClassになります。正しい変数を渡したかどうかを再確認し、それで問題ありません。多分render_to_stringに変数を渡す他の方法がありますか?
それはあなたが使っている構文かもしれません。 :locals
引数を使用してみてください:
@m = render_to_string :template => "template", :locals => {:sender => sender}
次に、テンプレート内のローカル変数としてsender
(@
なし)にアクセスするだけです。
これを試して:
ac = ActionController::Base.new()
ac.render_to_string(:partial => 'path to your partial',:locals => {:varable => your variables})
Render_to_stringでパーシャルの別のフォーマットをレンダリングしようとしていました。私にとって本当にうまくいったことは:
render_to_string(:partial => 'partial_file.html'、:locals => {:variable => variable}、:format =>:html)
ここで、ファイルの名前は_partial_file.html.erb
。
Rails 4.0.2ではこれはうまくいきました:
render_to_string(partial: 'path/to/partial', locals: { argument: 'value'}