1

我创建了一个 Rails 引擎(根据Rails Guides),使用:

rails plugin new address_book --full --mountable

然后我继续按照这个问题的答案中的说明,尝试了“haml”gem和“haml-rails”gem(我想要后者,因为我也在我的父应用程序中使用它)。

由于某种原因,运行后bundle,然后

rails g controller pages temp

它仍然创建 .erb 文件而不是 .haml 文件。

任何援助将不胜感激。我的代码如下:

'lib/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

“宝石文件”文件:

source "http://rubygems.org"

gemspec

gem "jquery-rails"
4

2 回答 2

2

试试这个:

添加到您的宝石规格:

s.add_dependency 'haml-rails'

而不是转到您的 engine.rb 文件并添加:

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

最后一步:添加到引擎 Gemspec:

gem 'haml-rails'

您的生成器现在将生成haml 视图。

于 2014-04-09T10:36:26.647 回答
1

在普通应用程序中,您可以在 application.rb 的 app-config 中进行配置,例如:

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

我不知道是否可以将这样的文件添加到引擎中。可以通过 railtie-config-hook 对其进行配置。

尽管有这些配置选项,您应该能够直接在命令行中指定模板引擎:

rails g controller pages temp -e=haml
于 2012-06-05T20:48:18.543 回答