htmlファイルを私たちのファイルシステムに書き出そうとしているので、他のものと一緒に圧縮して送り出すことができます。Rails 2.2.2:モデル内でyieldを使ってテンプレートをレンダリングする
app/views/layouts
フォルダーに私が使用したいerbテンプレートがあります。そのテンプレートには標準の<%= yield %>
呼び出しがあります。このインスタンスでは、私のメソッドの文字列として、あらかじめ生成されたhtmlの束を持っています。
だから、私はこのような何か(擬似コード)を実行する必要があります。
string = "<div>This is some <strong>html</strong></div>"
erb_template = "app/views/layouts/my_layout.html.erb"
output_filename = "/tmp/output.html"
#something like this...
render_to_file(erb_template, output_filename) do
string
end
私はちょうど<%= yield %>
をGSUB、私のテキストに置き換えることをしようとすることは単純かもしれませんが、それは警官のように感じていますout ...
Btw文字列として結果を得るのが簡単なら、例えばrender_to_string
を使用して、それをファイルに直接書き込んでも問題ありません。
編集:<%= yield %>
を<%= @content %>
に変更しようとしましたが、両方とも「保護されたメソッド呼び出し」エラーが発生しました:
c = ActionController::Base.new()
html = c.render_to_string :template => erb_template, :layout => false, :locals => {:content => string}
c = ApplicationController.new()
html = c.render_to_string :template => erb_template, :layout => false, :locals => {:content => string}