Как заставить мое фиктивное приложение использовать движок шаблонов Engine? - PullRequest
4 голосов
/ 31 января 2012

У меня есть Rails Engine, над которым я работаю, и у 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 ]

10 голосов
/ 07 февраля 2013

Вы должны потребовать драгоценный камень в lib/your_engine.rb. Если вам требуется это только в config/application.rb вашего фиктивного приложения, то у других возникнет такая же проблема, когда вы включите ваш движок в свои приложения.

Это может быть особенно запутанным, потому что в обычной разработке приложений на Rails. Легко положиться на Bundler.require, чтобы загрузить все ваши драгоценные камни для вас.

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

4 голосов
/ 31 января 2012

У меня была похожая проблема с фиктивным приложением, не загружающим Devise. То, что я должен был сделать, это потребовать его внутри config/application.rb, и тогда это сработало. Возможно, вам просто нужно require 'slim' там, и это тоже будет работать?

...