Использование Erubis 2.6.2 с Rails 2.2.2 несовместимо?

Предположительно установка erubis так же проста, как:

gem install erubis

# And in environment.rb:
require 'erubis/helpers/rails_helper'

Но я не нашел, что это так. Обратите внимание, что в моем коде нет явных ошибок; с ERB все работает отлично.

  1. Где я могу поставить эту строку? Сразу после boot.rb Включение не удается запустить сервер, и в конце файла я получаю неожиданную ошибку объекта nil (nil.controller). Где лучше?
  2. Известны ли конфликты с данными версиями?
  3. Есть ли какие-нибудь обходные пути, которые я могу использовать, чтобы заставить работать erubis?

3 ответа

Видимо это сломано:

http://kleinptr.wordpress.com/2009/02/04/erubis-and-rails-222/

и они работают над исправлением:

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/328613

Последние Erubis (2.6.4) и Rails 2.2 (и 2.3) по-прежнему не совместимы. Основная проблема заключается в том, что сгенерированный код ruby ​​из Erubis использует "_buf" в качестве переменной буфера, а Rails 2.2 и 2.3 требуют использования "@output_buffer".

Причиной использования "@output_buffer" является то, что помощники ActionView, такие как CaptureHelper, созданы вокруг "@output_buffer", являющегося основным буфером в сгенерированном коде.

Я создал гем под названием http://github.com/elkinsware/erubis_rails_helper/tree/master, который исправляет эти проблемы и позволяет использовать Erubis и Rails 2.3 (наверняка, но он должен работать для 2.2).

В вашем файле environment.rb добавьте:

 config.gem 'erubis' , :version => '2.6.4'
 config.gem 'elkinsware-erubis_rails_helper', :lib => 'erubis_rails_helper', :source => 'http://gems.github.com'

И тогда вы можете добавить config/initializers/erubis_config.rb, где вы можете настроить параметры Erubis/Rails.

 #Erubis::Helpers::RailsHelper.engine_class = Erubis::Eruby # or Erubis::FastEruby
 #Erubis::Helpers::RailsHelper.init_properties = {}
 #Erubis::Helpers::RailsHelper.show_src = false
 #Erubis::Helpers::RailsHelper.preprocessing = true

Источник находится по адресу http://github.com/elkinsware/erubis_rails_helper/tree/master

Дайте мне знать, если у вас есть какие-либо проблемы с жемчужиной.

  1. Либо поместите его в файл bottom или environment.rb, либо поместите в инициализатор (config/initializers/ everything.rb). Когда вы помещаете его перед блоком Rails::Initializer, среда rails еще не полностью загружена, и erubis/helpers/rails_helpers, похоже, предполагает полностью загруженную среду Rails.
  2. Я никогда не использовал Erubis, поэтому я не могу ответить на это.
  3. Обходные? Смотри № 1, я думаю.
Другие вопросы по тегам