【发布时间】:2014-03-05 20:00:20
【问题描述】:
我正在尝试从控制器中的 ERB 对象呈现 HTML(ERB 对象存储在数据库中),但没有成功。
我想做这样的事情:
首先,我创建了一个Func 实例:
Func.Create(text: "<% @users.each do |user| %>
<td><%= user.id %></td>
<td><%= link_to user.username, user_path(user) %></td>")
然后,在控制器中:
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__) ... ^"
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 erb