Использование Erubis 2.6.2 с Rails 2.2.2 несовместимо? - PullRequest
2 голосов
/ 23 декабря 2008

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

gem install erubis

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

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

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

Ответы [ 3 ]

1 голос
/ 23 февраля 2009

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

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

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

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

1 голос
/ 18 июня 2009

Последние версии 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", являющегося основным буфером в сгенерированном коде.

Я создал гем под названием elkinsware-erubis_rails_helper , который исправляет эти проблемы и позволяет использовать 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 голос
/ 25 декабря 2008
  1. Либо поместите его в файл bottom или environment.rb, либо поместите в инициализатор (config / initializer / everything.rb). Когда вы помещаете его перед блоком Rails :: Initializer, среда rails еще не полностью загружена, и erubis / helpers / rails_helpers, похоже, предполагает полностью загруженную среду Rails.
  2. Я никогда не пользовался эрубисом, поэтому не могу на это ответить.
  3. Обходные? Смотри № 1, наверное.
...