有没有办法让一个普通的ruby类使用erb/haml模板?
问题描述:
基本上,我有一些输出HTML的类:有没有办法让一个普通的ruby类使用erb/haml模板?
class Foo
include ActionView::Helpers
def initialize(stuff)
@stuff = stuff
end
def bar
content_tag :p, @stuff
end
end
所以我可以做:Foo.new(123)的.bar
并获得 “<p/P>”
...但我真正想要做的是这样的:
class Foo << ActionView::Base
def initialize(stuff)
@stuff = stuff
end
def bar
render :template => "#{Rails.root/views/foo/omg.html.erb}"
end
end
# views/omg.html.erb
<h1>Wow, stuff is <%= @stuff %></h1>
和TH恩做Foo.new(456)的.bar并获得 “<H1>哇,东西456 </H1 >”
试试看http://yehudakatz.com/2009/07/19/rails-3-the-great-decoupling/可能会有所帮助。 –