How do I get Haml to work with Rails?

I am trying to get Haml to work with my Ruby on Rails project. I am new to Ruby on Rails and I really like it. However, when I attempt to add an aplication.html.haml or index.html.haml for a view, I just receive errors.

I am using NetBeans as my IDE.

55277 次浏览

First, install haml as a gem in bundler by adding this to your Gemfile:

gem "haml"

Run bundle install, then make sure your views are named with a *.html.haml extension. For example:

`-- app
`-- views
|-- layouts
|   `-- application.html.haml
`-- users
|-- edit.html.haml
|-- index.html.haml
|-- new.html.haml
`-- show.html.haml

First, make sure you have the HAML gem.

gem list --local | grep haml

If haml doesn't show up in the list, then do this:

sudo gem install haml

Then do this from your project directory:

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

That should install everything you need, and the HAML views should stop complaining and parse correctly.

Before trying to use haml in your rails application, you can verify that the command line executable is installed correctly:

$ haml
%p
%span Hello World!

Then press CTRL-D and you should see:

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

if for some reason you installed haml, but you haml doesn't start. try

sudo ln haml /usr/bin/

in the bin directory of your haml gem

for some reason this didn't happen automatically on my ubuntu 9.04 Jaunty.

Haml with Rails 3

For Rails 3 all you need to do is add gem "haml", '3.0.25' to your Gemfile. No need to install plugin or run haml --rails ..

Just:

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

And you're done.

The answers above are spot-on. You just need to put gem 'haml' in your Gemfile.

One other tip that was not mentioned: to have rails generators use haml instead of erb, add the following to 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

This may be an old question but I think the answer is using haml-rails at https://github.com/indirect/haml-rails

Add haml to your Gemfile:

gem "haml"

If you want to use the scaffold-functions too, add haml-rails within your development-group:

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

Don't forget to run:

$ bundle install

If you are using Pow you will need to restart it also. Ideally you are using powder (gem install powder), because then you can just run this at the terminal

$ powder restart

make sure to add haml gem into your Gemfile