我如何让Haml与Rails合作?


77

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

我使用NetBeans作为我的IDE。


1
有什么错误?您是否安装了HAML插件?
奥托(Otto)

Answers:


88

Haml with Rails 3

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

只是:

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

这样就完成了。


2
添加echo'gem“ haml-rails”,:group =>:development'>> Gemfile以将haml用于脚手架作为默认选项。
Fa11enAngel 2012年

而且bundle我认为
Michael Durrant 2015年

60

上面的答案是随处可见的。您只需要放入gem 'haml'您的Gemfile

另一个未提及的技巧:使用rails generatorshaml代替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,您还可以在中添加gem 'haml-rails'到开发组Gemfile。那也将照顾发电机。
Felix Rabe 2012年

1
这等效于,config.generators.template_engine :haml但是如果要自定义许多生成器,则do块很不错。重申一下,如果使用gem 'haml-rails'它,则无需一行代码即可解决此问题config/application.rb
Ryan Taylor

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

3
如果您已经有了erb模板,请继续将其重命名为.html.haml。在文件顶部,通过将:erb放在文件顶部,告诉haml使用erb过滤器。然后,您可以缓慢地转换模板。有关过滤器的更多信息,请访问。 haml.hamptoncatlin.com/docs/rdoc/classes/Haml.html
gregf

4
为什么以.html.haml而不是.haml结尾很重要?
user5243421 2010年

12
mathee,这是Rails约定。 name.mime.format(例如show.html.erb,show.xml.builder,show.html.haml)
Ryan McGeary 2010年

25

将haml添加到您的Gemfile中:

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>

很好。。。很整洁。

10

首先,请确保您具有HAML gem。

gem list --local | grep haml

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

sudo gem install haml

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

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

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


2
请注意,haml --rails不再需要Rails 3 。请参阅我对Rails 3 Howto的回答。
kch 2010年

7
请避免sudo在安装gem时使用。
David J.


1

如果由于某种原因安装了haml,但haml无法启动。尝试

sudo ln haml /usr/bin/

在您的haml gem的bin目录中

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


0

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

$ powder restart

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.