如何让Haml在Rails中工作?

77

我正在尝试让Haml与我的Ruby on Rails项目一起运行。我对Ruby on Rails是新手,但我非常喜欢它。然而,当我尝试为视图添加aplication.html.hamlindex.html.haml时,我只会收到错误。

我正在使用NetBeans作为我的IDE。


1
什么是错误?你安装了HAML插件吗? - Otto
10个回答

88

使用Rails 3和Haml模板

对于Rails 3,您只需要在Gemfile中添加gem "haml", '3.0.25'即可。不需要安装插件或运行haml --rails .

只需执行以下操作:

$ cd awesome-rails-3-app.git
$ echo 'gem "haml"' >> Gemfile

然后就完成了。


2
在Gemfile中添加echo 'gem "haml-rails", :group => :development' >> Gemfile以使用haml作为默认的脚手架选项。 - Fa11enAngel
并且我假设也包括bundle - Michael Durrant

60
上面的答案是正确的。你只需要在你的Gemfile中加上gem 'haml'
另外一个没有提到的提示是:如果想让rails生成器使用haml而不是erb,请在config/application.rb中添加以下内容:
config.generators do |g|
  g.template_engine :haml

  # you can also specify a different test framework or ORM here
  # g.test_framework  :rspec
  # g.orm             :mongoid
end    

31
除了编辑 application.rb 文件外,您还可以在 Gemfile 文件的开发组中添加 gem 'haml-rails'。这也会处理生成器。 - Felix Rabe
1
这段代码的作用类似于 config.generators.template_engine :haml,不过如果你想要自定义多个生成器,使用 do 块会更好。再次强调,如果你使用 gem 'haml-rails',它应该可以解决这个问题,而无需在 config/application.rb 中添加任何代码。 - Ryan Taylor

37

首先,在你的 Gemfile 中添加以下内容,将 haml 安装为 bundler 的 gem:

```ruby gem 'haml' ```
gem "haml"
运行bundle install,然后确保你的视图文件使用*.html.haml扩展名。例如:
`-- app
    `-- views
        |-- layouts
        |   `-- application.html.haml
        `-- users
            |-- edit.html.haml
            |-- index.html.haml
            |-- new.html.haml
            `-- show.html.haml

3
如果您已经有了erb模板,请将它们重命名为.html.haml。在文件顶部通过添加:erb告诉haml使用erb过滤器。然后您可以逐步转换您的模板。更多关于过滤器的信息请访问:http://haml.hamptoncatlin.com/docs/rdoc/classes/Haml.html - gregf
4
为什么以.html.haml结尾很重要,而不只是.haml? - boo-urns
12
mathee,这是Rails的约定。文件命名为name.mime.format(例如show.html.erb、show.xml.builder、show.html.haml)。 - Ryan McGeary

25
在你的Gemfile中添加haml:
gem "haml"
如果您想要使用脚手架函数,请在开发组中添加haml-rails:
gem 'haml-rails', :group => :development

别忘了运行:

$ bundle install

11

在尝试在Rails应用程序中使用Haml之前,您可以验证命令行可执行文件是否已正确安装:

$ haml
%p 
  %span Hello World!

然后按下CTRL-D,您应该看到:

<p>
  <span>Hello World!</span>
</p>

不错...这很棒。 - user1899082

10

首先,请确保您已安装了HAML宝石。

gem list --local | grep haml
如果在列表中找不到Haml,则执行以下操作:
sudo gem install haml

然后在您的项目目录中执行以下操作:

# cd ../
# haml --rails <yourproject>

这样应该安装了你所需要的一切,HAML视图不再抱怨并且能正确解析。


2
请注意,对于Rails 3,不再需要使用haml --rails命令。有关Rails 3的说明,请参阅我的答案。 - kch
7
安装 gem 时,请避免使用 sudo - David J.

3

这可能是一个老问题,但我认为答案是使用 haml-rails 来进行翻译相关的IT技术内容。


1
如果由于某些原因您安装了Haml,但是Haml无法启动,请尝试:
sudo ln haml /usr/bin/

在您的 Haml 宝石的 bin 目录中

由于某些原因,在我的 Ubuntu 9.04 Jaunty 上没有自动发生。


0

如果你正在使用Pow,你需要重启它。理想情况下,你应该使用powder(gem install powder),因为这样你就可以在终端上运行它了。

$ powder restart

0

请确保将haml gem添加到您的Gemfile


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接