【问题标题】:Haml-rails not working in Rails 3 EngineHaml-rails 在 Rails 3 引擎中不起作用
【发布时间】:2012-06-09 19:03:42
【问题描述】:

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

rails plugin new address_book --full --mountable

然后我继续按照the answer to this question 中的说明进行操作,尝试了“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

“Gemfile”文件:

source "http://rubygems.org"

gemspec

gem "jquery-rails"

【问题讨论】:

标签: ruby-on-rails ruby-on-rails-3 haml ruby-on-rails-3.2 rails-engines


【解决方案1】:

试试这个:

添加到您的宝石规格中:

s.add_dependency 'haml-rails'

然后转到您的 engine.rb 文件并添加:

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

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

gem 'haml-rails'

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

【讨论】:

    【解决方案2】:

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

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

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

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

    rails g controller pages temp -e=haml
    

    【讨论】:

    • 在我的父应用程序中,我不使用此配置,因为我使用“haml-rails”gem。我会用“-e”试试看会发生什么
    • 谢谢。 “-e = haml”有效。我没有将其标记为已回答,因为我想看看是否有人会解决问题。如果没有,那我稍后再标记。
    猜你喜欢
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-13
    • 1970-01-01
    • 2018-07-13
    • 2013-11-18
    相关资源
    最近更新 更多