我試圖寫出一個html文件到我們的文件系統,所以它可以壓縮併發送出去,以及其他一些東西。Rails 2.2.2:在模型中渲染帶有良率的模板
我在我們的app/views/layouts
文件夾中有一個我想使用的erb模板。該模板有一個標準的<%= yield %>
調用,在這種情況下,我有一堆預生成的html,作爲我的方法中的一個字符串,我想用yield替換yield。
所以,我需要做的是這樣的(僞):
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
這樣可能比較簡單,我嘗試只是GSUB了<%= yield %>
,並用我的文字取代它,但感覺就像警察出...
順便說一句,如果它更容易得到結果作爲一個字符串,例如使用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}