坚持使用haml模板

时间:2011-10-11 19:12:08

标签: ruby-on-rails ruby xhtml haml

我想将一些haml(* .html.haml文件)转换为xhtml。 haml命令显示“Usage:haml [options] [INPUT] [OUTPUT]”。所以我尝试了以下回复:

Exception on line 1: undefined method `content_for' for #<Object:0xb730af2c>

我注意到有不同的格式都被称为haml。我注意到了一个使用尖括号的人。我需要某种预处理吗?

以下是我要转换的示例html.haml文件:

- content_for :head do
  = stylesheet_link_tag    'jquery.autocomplete'
  = javascript_include_tag 'jquery.autocomplete'
- javascript_behaviour '$("input#user_full_name").autocomplete("project_roles/auto_complete_for_user_full_name")'

注意:我知道如何谷歌,所以我正在寻找具体的建议。

2 个答案:

答案 0 :(得分:1)

你正在使用rails helper,content_for,所以当你使用命令行程序调用haml时,它不知道它代表什么。 因此,要么将haml gem添加到gemfile中,并将模板保存在.html.haml模板中,请尝试渲染它,或者将rails_for替换为rails生成的html结果。

答案 1 :(得分:0)

你想要的是将Haml转换为Erb--一种看起来像HTML的Ruby模板语言。 Haml不这样做,所以它试图将你的haml模板渲染到xhtml而不是将其转换为另一个模板。

您可以使用haml2erb gem进行转换。它会是这样的:

Dir["**/*.haml"].each do |filename|
  File.open(filename.gsub(/haml$/, 'erb'),'w') do |f|
    f.puts Haml2Erb.convert( File.read(filename) )
  end
end