1

Я создал Rails Engine (согласно Rails Guides) с помощью:Haml рельсы не работает в Rails 3 Engine

rails plugin new address_book --full --mountable 

Затем я приступил следовать инструкциям в the answer to this question, пытаясь как «Haml» драгоценный камень , а также жемчужину «haml-rails» (я бы хотел, чтобы последний использовал его в моем родительском приложении).

По какой-то причине, после запуска bundle, а затем

rails g controller pages temp 

он по-прежнему создает .erb файлов вместо .haml файлов.

Любая помощь будет оценена по достоинству. Мой код выглядит следующим образом:

'Библиотека/address_book.rb' Файл:

require "address_book/engine" 
require "haml-rails" 

module AddressBook 
end 

'address_book.gemspec' Файл:

$:.push File.expand_path("../lib", __FILE__) 

# Maintain your gem's version: 
require "address_book/version" 

# Describe your gem and declare its dependencies: 
Gem::Specification.new do |s| 
    s.name  = "address_book" 
    s.version  = AddressBook::VERSION 
    s.authors  = ["TODO: Your name"] 
    s.email  = ["TODO: Your email"] 
    s.homepage = "TODO" 
    s.summary  = "TODO: Summary of AddressBook." 
    s.description = "TODO: Description of AddressBook." 

    s.files = Dir["{app,config,db,lib}/**/*"] + ["MIT-LICENSE", "Rakefile", "README.md"] 
    s.test_files = Dir["test/**/*"] 

    s.add_dependency "rails", "~> 3.2.5" 
    s.add_dependency "haml-rails" 
    # s.add_dependency "jquery-rails" 

    s.add_development_dependency "sqlite3" 
end 

Файл 'Gemfile':

source "http://rubygems.org" 

gemspec 

gem "jquery-rails" 
+1

Этот ответ сработал для меня в Rails 4 engine http://stackoverflow.com/a/13907060/1392226 – schneikai

ответ

2

попробовать это:

Добавить в свой драгоценный камень спецификации:

s.add_dependency 'haml-rails' 

, чем перейти к файлу engine.rb и добавить:

config.generators do |g| 
    g.template_engine :haml 
end 

последний шаг: Добавить в Engines Gemspec:

gem 'haml-rails' 

Ваши генераторы теперь производят мнения Haml.

1

в обычном приложении вы должны настроить это в app-config в application.rb как:

config.generators do |g| 
    g.template_engine :haml 
end 

Я не знаю, можно ли добавить такой файл в двигатель. возможно, можно настроить его с помощью крючка railtie-config.

несмотря на эти параметры конфигурации, вы должны быть в состоянии указать шаблонный двигатель непосредственно в командной строке:

rails g controller pages temp -e=haml 
+0

В моем родительском приложении я не использую эту конфигурацию, потому что я использую драгоценный камень «haml-rails». Я попробую его с «-e» и посмотрю, что будет –

+0

Спасибо. «-e = haml» работал. Я не отметил это как ответ, потому что хочу увидеть, разрешит ли кто-нибудь проблему. Если нет, тогда я помету его позже. –

Смежные вопросы