我想從控制器內的ERB對象呈現HTML(ERB對象存儲在數據庫中),但沒有成功。如何從控制器中的ERB對象呈現html?
我願做這樣的事情:
首先,我創建了一個Func
實例:
Func.Create(text: "<% @users.each do |user| %>
<td><%= user.id %></td>
<td><%= link_to user.username, user_path(user) %></td>")
然後,在controlller:
class MainController < ApplicationController
def foo
@users = User.all
render :html => bar(binding)
end
def bar(controller_binding)
html = Func.find(1)
template = ERB.new(html.text)
template.result(controller_binding)
end
end
但我得到的是錯誤,如下所示:
"Missing template main/resource_name, application/resource_name with
{:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :raw, :ruby,
:jbuilder, :coffee]}. Searched in: * "c:/Users/david/sample/app/views""
和
"(erb):3: syntax error, unexpected $end, expecting keyword_end ...
ut.force_encoding(__ENCODING__) ... ^"
你完全正確,我改變了它,現在我得到這個錯誤:「未定義的方法'每個'爲零:NilClass」..如何將@users變量轉發到bar? – David
請檢查我的更新答案。 –
來吧聊天http://chat.stackoverflow.com/rooms/48530/ror –