【问题标题】:How do I get my dummy app to use the Engine's template engine?如何让我的虚拟应用程序使用引擎的模板引擎?
【发布时间】:2012-01-31 01:24:25
【问题描述】:

我正在开发一个 Rails 引擎,gemspec 有这个:

s.add_development_dependency "rspec-rails"
s.add_development_dependency "combustion"
s.add_development_dependency "capybara"
s.add_development_dependency "factory_girl_rails"
s.add_development_dependency "ffaker"
s.add_development_dependency "draper"
s.add_runtime_dependency "sqlite3"
s.add_runtime_dependency "slim-rails"
s.add_runtime_dependency "sass-rails"
s.add_runtime_dependency "jquery-rails"
s.add_runtime_dependency "rails", "~> 3.2"

但是,在转到正确的控制器/操作时,我收到此错误:

Missing template countdown/subscriptions/index, countdown/application/index with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder]}. Searched in: * "/Users/krainboltgreene/Repository/ruby/countdown/spec/dummy/app/views" * "/Users/krainboltgreene/Repository/ruby/countdown/app/views"

注意到处理程序部分了吗?

【问题讨论】:

    标签: ruby-on-rails template-engine rails-engines slim-lang


    【解决方案1】:

    您应该需要 lib/your_engine.rb 中的 gem。如果您只在虚拟应用程序的config/application.rb 中需要它,那么其他人在将您的引擎包含在他们的应用程序中时也会遇到同样的问题。

    这可能特别令人困惑,因为在常规 Rails 应用程序开发中。依赖 Bundler.require 为您加载所有 gem 很容易。

    http://myronmars.to/n/dev-blog/2012/12/5-reasons-to-avoid-bundler-require

    【讨论】:

      【解决方案2】:

      我在虚拟应用程序没有加载设计时遇到了类似的问题。我必须做的是在config/application.rb 中要求它,然后它就起作用了。也许您只需要在那里require 'slim' 就可以了?

      【讨论】:

      • 我们在说spec|test/dummy/configconfig/?我当然会尝试两种方法,但在这里拥有它会对其他人有所帮助。
      • spec|test/dummy/config。引擎没有config/application.rb... 因为它是引擎! :)
      • 这个答案解释了问题,但没有提供正确的方法/解决方案。 Hannah's 建议我们应该要求 lib/your_engine.rb 中的 gem 是正确的解决方案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-23
      • 1970-01-01
      • 2011-12-13
      • 1970-01-01
      • 1970-01-01
      • 2012-01-14
      • 2013-03-06
      相关资源
      最近更新 更多