我有一個Rails應用程序,其中我正在渲染模塊屬性中存儲的Haml塊的塊。在那個Haml塊中使用Rails視圖助手會很好。目前,我在視圖助手中使用Haml :: Engine#渲染來呈現此模型屬性的內容。它工作得不錯,但我不能使用= link_to之類的東西。爲了說明問題:使用Rails視圖助手與Haml ::引擎
irb(main):003:0> haml_text=<<"EOH"
irb(main):004:0" %p
irb(main):005:0" =image_tag 'someimage'
irb(main):006:0" EOH
=> "%p\n =image_tag 'someimage'\n"
irb(main):007:0> engine = Haml::Engine.new(haml_text)
=> #<Haml::Engine:0x7fa9ff7f1150 ... >
irb(main):008:0> engine.render
NoMethodError: undefined method `image_tag' for #<Object:0x7fa9ff7e9a40>
from (haml):2:in `render'
from /usr/lib/ruby/gems/1.8/gems/haml-3.0.25/lib/haml/engine.rb:178:in `render'
from /usr/lib/ruby/gems/1.8/gems/haml-3.0.25/lib/haml/engine.rb:178:in `instance_eval'
from /usr/lib/ruby/gems/1.8/gems/haml-3.0.25/lib/haml/engine.rb:178:in `render'
from (irb):8
任何想法如何做到這一點?
更好的主意?
但是再次,很多Rails的幫手依賴於控制器/請求。例如'image_tag'將檢查主機名(在請求中)。這會非常糟糕地崩潰。 – 2011-03-02 19:16:23