Як змусити Haml працювати з Rails?


77

Я намагаюся змусити Haml працювати з моїм проектом Ruby on Rails. Я новачок у Ruby on Rails, і мені це дуже подобається. Однак, коли я намагаюся додати aplication.html.hamlабо index.html.hamlдля подання, я просто отримую помилки.

Я використовую NetBeans як свою IDE.


1
Які помилки? У вас встановлений плагін HAML?
Отто

Відповіді:


88

Haml з рейками 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

а також bundleя припускаю
Майкл Деррант

60

Наведені вище відповіді - точні. Вам просто потрібно покласти gem 'haml'в свій Gemfile.

Ще одна порада, про яку не згадувалося: щоб генератори рейок використовували 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, ви можете додати gem 'haml-rails'до групи розробників у Gemfile. Це також подбає про генератори.
Фелікс Рабе

1
це еквівалентно, config.generators.template_engine :hamlхоча блок do приємний, якщо ви хочете налаштувати кількість генераторів. І ще раз повторю, якщо ви використовуєте gem 'haml-rails'його, вирішіть цю проблему, не потребуючи рядка кодуconfig/application.rb
Райан Тейлор,

37

Спочатку встановіть haml як дорогоцінний камінь у пакеті, додавши це до свого 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. Угорі файлу скажіть haml використовувати фільтр erb, поставивши: erb у верхній частині файлу. Потім ви можете повільно конвертувати ваші шаблони. Більше про фільтри відвідайте. haml.hamptoncatlin.com/docs/rdoc/classes/Haml.html
gregf

4
Чому важливо закінчувати .html.haml, а не лише .haml?
user5243421

12
Меті, це Конвенція Rails. name.mime.format(наприклад, show.html.erb, show.xml.builder, show.html.haml)
Райан Макгірі,

25

Додайте haml до свого Gemfile:

gem "haml"

Якщо ви теж хочете використовувати функції-ліси, додайте haml-rails у свою групу розробки:

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

Не забудьте запустити:

$ bundle install

11

Перш ніж намагатися використовувати haml у своїй програмі rails, ви можете переконатися, що виконуваний файл командного рядка встановлений правильно:

$ haml
%p 
  %span Hello World!

Потім натисніть CTRL-D, і ви побачите:

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

приємно ... це досить акуратно.

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
Будь ласка, уникайте використання sudoпри встановленні самоцвітів.
Девід Дж.


1

якщо з якихось причин ви встановили haml, але у вас haml не запускається. спробуй

sudo ln haml /usr/bin/

у каталозі bin вашого дорогоцінного каменя haml

чомусь це не сталося автоматично на моєму ubuntu 9.04 Jaunty.


0

Якщо ви використовуєте Pow, вам також потрібно буде перезапустити його. В ідеалі ви використовуєте порошок ( порошок для встановлення самоцвіту), оскільки тоді ви можете просто запустити це на терміналі

$ powder restart

0

не забудьте додати hamlдорогоцінний камінь у вашGemfile

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.