如何让我的虚拟应用程序使用Engine的模板引擎?

时间:2012-01-31 01:24:25

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

我有一个正在研究的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"

注意处理程序部分?

2 个答案:

答案 0 :(得分:10)

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

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

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

答案 1 :(得分:4)

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