Rails初始化程序中的配置块不能使用本地路径gems(?)

时间:2018-03-05 23:32:11

标签: ruby-on-rails ruby rubygems bundler ruby-on-rails-5.1

在我的Rails应用Gemfile中,我有gem 'myfancygem', path: '/Users/matt/myfancygem'

这可以按照您的预期进行。

然后我在gem中添加了一个配置块功能,la https://robots.thoughtbot.com/mygem-configure-block(还有许多其他功能都是轻微的变种)

我在我的Rails应用程序中使用标准创建了一个初始化程序myfancygem.rb: Myfancygem.configure do |config| config.favorite_color = 'red' end

当运行我的本地应用程序(在rails控制台或rails服务器中)时,那个favorite_color不会被设置。它保持在gem(nil

内指定的默认值

但是,如果我将该gem推送到rubygems并正常加载它(即Gemfile中没有path位),初始化程序配置将按预期工作。

为了防止我在我的gem中做了一些疯狂的事情,我git克隆了ReactOnRails gem的最新副本,它做了几乎相同的配置方法。然后我通过path将我的Gemfile指向了本地的ReactOnRails。你猜怎么着?同样的问题。我为ReactOnRails的Rails应用程序设置的初始化程序似乎被忽略了。我甚至在初始化程序中添加了puts个语句,以证明它们已被执行并且正在设置配置,但是它会在Rails.application.initialize!中的environment.rb后立即重置为默认值

嗯......哎呀?

这是Rails中的已知错误吗?还是Bundler?或者其他的东西?还是有一些我失踪了?或者我可能做错的事情,我没有意识到?

0 个答案:

没有答案