我最近安装了Bundle gem(稳定版2.3.x)和一个集成的3.0版本。安装2.3.x的文档很薄弱,所以我在这里寻求帮助。
我已经完成了有关安装和配置gem bundler的文章(安装gem bundler,定义Gemfile,添加preinitializer.rb,需要bundler_gems / environment.rb):
http://litanyagainstfear.com/blog/2009/10/14/gem-bundler-is-the-future/
我可以成功运行脚本/服务器,但是当我尝试通过浏览器访问任何页面时,我收到500内部服务器错误声称许多ActionView方法未定义:
ActionView::TemplateError (undefined method `debug' ...
ActionView::TemplateError (undefined method `javascript_tag' ...
必须有某些宝石依赖在某处失败?这是我的Gemfile(rails 2.3.5):
clear_sources
bundle_path "vendor/bundler_gems"
source "http://gems.github.com"
source "http://gemcutter.org"
gem "rails", "2.3.5"
gem "formtastic"
gem "authlogic"
gem "will_paginate"
gem "cancan"
任何指针?
答案 0 :(得分:1)
所以在Rails 2.3.5上配置gem bundler:
我将preinitializer.rb脚本更改为:
# Load the environment constructed from the Gemfile
require "#{File.dirname(__FILE__)}/../vendor/bundler_gems/environment"
module Rails
class Boot
def run
load_initializer
extend_environment
Rails::Initializer.run(:set_load_path)
end
def extend_environment
Rails::Initializer.class_eval do
old_load = instance_method(:load_gems)
define_method(:load_gems) do
old_load.bind(self).call
Bundler.require_env RAILS_ENV
end
end
end
end
end
从config / environment.rb中删除了所有Bundler.require_env定义,一切都很好。
答案 1 :(得分:1)
作为参考,bundle现在是0.9.5。这是最新的rails 2.3.5配置(你基本上可以忽略其他所有内容):
答案 2 :(得分:0)
这些宝石中的大部分(或全部)都是Rails插件。您应该在Rails初始化阶段需要它们。请将此贴在after_initialize
:
config.after_initialize do
Bundler.require_env
end
答案 3 :(得分:0)
更新为Gem Bundler文档改进: