ruby-on-rails – 从多个其他人组成一个Gemfile
发布时间:2020-12-17 01:46:51 所属栏目:百科 来源:网络整理
导读:我正在将一个大型应用程序拆分成多个较小的应用程序.在这样做时,我意识到通过创建Gemfile.global并将其包含在我的主应用程序和子应用程序中,我可以清理所有的Gemfiles.例如,我的所有部署gem都在主Gemfile中,我的rails在Gemfile.global中. 它几乎适用于我的所
我正在将一个大型应用程序拆分成多个较小的应用程序.在这样做时,我意识到通过创建Gemfile.global并将其包含在我的主应用程序和子应用程序中,我可以清理所有的Gemfiles.例如,我的所有部署gem都在主Gemfile中,我的rails在Gemfile.global中.
它几乎适用于我的所有宝石,除了一个:Squeel. 根应用程序中的我的Gemfile以: gemfiles = [ File.join('Gemfile.global'),] Dir.glob(File.join(File.dirname(__FILE__),gemfiles)) do |gemfile| eval(IO.read(gemfile),binding) end # gem 'squeel' # Let's try putting this in Gemfile.global 我的Gemfile.global看起来像: source 'https://rubygems.org' # rails and dependencies gem 'squeel' 捆绑安装工作得很好,以及rails和几乎所有东西,你期望的方式,主要Gemfile中的Squeel.但是,将它放在Gemfile.global中时,在使用默认的Squeel初始化程序时会搞砸初始化过程: Squeel.configure do |config| end rails s抛出一个未初始化的常量Squeel(NameError),即使bundle install报告使用squeel(1.0.13).为什么这种组合我的Gemfile的方法搞乱了rails运行时常量? 解决方法
将Gemfile.global加载到Gemfile中时,请使用instance_eval而不是eval.即您的项目Gemfile应如下所示(删除File.joins以避免混淆):
gemfiles = [ 'Gemfile.global' ] gemfiles.each do |gemfile| instance_eval File.read(gemfile) end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |