77

我正在尝试让 Haml 与我的 Ruby on Rails 项目一起工作。我是 Ruby on Rails 的新手,我真的很喜欢它。但是,当我尝试为视图添加aplication.html.hamlindex.html.haml时,我只会收到错误消息。

我使用 NetBeans 作为我的 IDE。

4

10 回答 10

88

带有 Rails 3 的 Haml

对于 Rails 3,您需要做的就是添加gem "haml", '3.0.25'到您的Gemfile. 无需安装插件或运行haml --rails ..

只是:

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

你完成了。

于 2010-05-22T12:22:33.880 回答
60

上面的答案很到位。你只需要把gem 'haml'你的Gemfile.

另一个未提及的提示:要使用 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    
于 2011-02-17T21:15:44.603 回答
37

首先,将haml安装为捆绑器中的gem,方法是将其添加到您的Gemfile

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
于 2008-09-19T20:54:02.670 回答
25

将 haml 添加到您的 Gemfile 中:

gem "haml"

如果您也想使用脚手架功能,请在您的开发组中添加 haml-rails:

gem 'haml-rails', :group => :development

不要忘记运行:

$ bundle install
于 2012-05-08T17:55:45.890 回答
11

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

$ haml
%p 
  %span Hello World!

然后按 CTRL-D 你应该看到:

<p>
  <span>Hello World!</span>
</p>
于 2009-04-21T18:44:50.537 回答
10

首先,确保您拥有 HAML gem。

gem list --local | grep haml

如果 haml 没有出现在列表中,请执行以下操作:

sudo gem install haml

然后从您的项目目录执行此操作:

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

这应该会安装您需要的一切,并且 HAML 视图应该停止抱怨并正确解析。

于 2008-09-20T00:23:45.507 回答
3

这可能是一个老问题,但我认为答案是在https://github.com/indirect/haml-rails使用 haml-rails

于 2012-05-05T09:50:42.780 回答
1

如果由于某种原因您安装了haml,但您的haml 没有启动。尝试

sudo ln haml /usr/bin/

在你的 haml gem 的 bin 目录中

由于某种原因,这并没有在我的 ubuntu 9.04 Jaunty 上自动发生。

于 2009-10-22T21:16:30.920 回答
0

如果您正在使用Pow,您还需要重新启动它。理想情况下,您使用的是粉末(gem install powder),因为这样您就可以在终端上运行它

$ powder restart
于 2012-05-09T03:53:48.493 回答
0

确保将hamlgem 添加到您的Gemfile

于 2020-06-09T14:13:54.730 回答