1

在 Rails 中,我可以使用以下内容将 erb 转换为 html

erb(filename_as_string)

虽然我找不到haml等价物。所以我开始像这样创建一个助手:

  def haml(file)
    lines = File.new(Rails.root.to_s + file).readlines.first
    engine = Haml::Engine.new(lines)
    engine.render
  end

不过,这不会将任何实例变量传递给我的 haml 文件。

是否有现有的功能可以做到这一点?或者我应该在我的助手中添加什么来传递我在控制器方法中创建的所有实例变量?

4

1 回答 1

1

查看http://haml.info/docs/yardoc/Haml/Engine.html#render-instance_method。如您所见,它获取了一个默认传递的新对象,用作绑定。所以在你的情况下,你可能想要

engine.render(self)

另外,为了创建引擎,你可以

engine = Haml::Engine.new(File.read "#{Rails.root}#{file}")
于 2012-05-21T09:46:30.407 回答