1

我最近安装了带有集成 3.0 版本的 Bundle gem(稳定版 2.3.x)。安装 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 Internal Server Error 声称许多 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"

任何指针?

4

4 回答 4

1

For reference, bundle is now on 0.9.5. Here is the newest rails 2.3.5 config (you can basically ignore everything else here):

http://gist.github.com/302406

于 2010-02-14T16:53:38.470 回答
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 定义,一切都很好。

http://gist.github.com/286099

于 2010-01-25T19:33:21.403 回答
0

这些 gem 中的大多数(或全部)都是 Rails 插件。您应该在 Rails 初始化阶段需要它们。把它贴在你的after_initialize

config.after_initialize do
  Bundler.require_env
end
于 2010-01-25T19:36:31.887 回答
0

随着 Gem Bundler 文档的改进而更新:

http://gembundler.com/rails23.html

于 2010-06-16T12:50:50.290 回答