【发布时间】:2012-09-12 15:26:42
【问题描述】:
只是出于好奇...在我之前的帖子Rails3.1 engine: can't get SLIM or HAML to work in test/dummy app 中,我问到哪里可以告诉Ruby 在我的test/dummy 应用程序中使用一些gem。
(显然?)答案是将其放入我的引擎的 Gemfile 中。这行得通,但它让我有点不舒服,因为在 Yehuda Katz 的帖子Clarifying the Roles of the .gemspec and Gemfile 他提到...
...在开发 gem 时,Gemfile “gem 的 Gemfile 应该包含 Rubygems 源代码和单个 gemspec 行”。
另一方面,在我的 Engine 的 Gemfile(使用 Rails 的rails plugin new my_engine 生成)中有:
# jquery-rails is used by the dummy application
gem "jquery-rails"
所以这似乎是正确的。 更新:不,它没有!看看我下面的答案...
不过,somewhere else on StackOverflow 我看到解决方案据说只需要 config/application.rb 中所需的 gem,而 https://stackoverflow.com/questions/5159607/rails-engine-gems-dependencies-how- to-load-them-into-the-application 它被告知最好放入lib/<your_engine>/engine.rb file。
这是我的想法:为什么test/dummy 应用程序不简单地自动要求.gemspec 文件中指定的所有宝石?我们甚至通过显式使用add_dependency 和add_development_dependency 告诉gem,哪些gem 用于生产,哪些用于开发模式,所以我看不出test/dummy 不这样做的任何原因。
所以这是最后一个问题:我必须在哪里告诉 Ruby 在我的test/dummy 应用程序中使用 gem?我不想强迫 Ruby 在主机应用程序中也使用宝石。
【问题讨论】:
-
+1 提问;期待你得到的答案:-)
-
用我目前的发现为问题添加了一些更有趣的信息(参见更新)。
-
感谢您的更新。会为它 +1,但不能做两次 ;-) gemfile 组的事情看起来很奇怪。
标签: ruby-on-rails gem rails-engines gemfile