Rails Gem Bundler ломает зависимости - PullRequest
1 голос
/ 25 января 2010

Я недавно установил Gem Bundle (стабильный 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 (рельсы 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 ]

1 голос
/ 14 февраля 2010

Для справки, комплектация теперь на 0.9.5. Вот новейшая конфигурация rails 2.3.5 (здесь вы можете игнорировать все остальное):

http://gist.github.com/302406

1 голос
/ 25 января 2010

Итак, для настройки gem bundler на Rails 2.3.5:

Я изменил свой сценарий 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

И удалил все определения Bundler.require_env из config / environment.rb, и все было хорошо.

http://gist.github.com/286099

0 голосов
/ 16 июня 2010

Обновлен по мере улучшения документации Gem Bundler:

http://gembundler.com/rails23.html

0 голосов
/ 25 января 2010

Большинство (или все) из этих драгоценных камней являются плагинами Rails. Они вам понадобятся на этапе инициализации Rails. Воткни это в свой after_initialize:

config.after_initialize do
  Bundler.require_env
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...