2008-12-23 3 views
2

installation Supposément erubis est aussi simple que:L'utilisation d'Erubis 2.6.2 avec Rails 2.2.2 est-elle incompatible?

gem install erubis 

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

Mais je n'ai pas trouvé cela si. Notez qu'il n'y a pas d'erreurs évidentes dans mon code; ça marche très bien et dandy avec ERB.

  1. Où puis-je mettre cette ligne? Directement après l'inclusion boot.rb il ne parvient pas à démarrer le serveur, et à la fin du fichier, je reçois une erreur d'objet nil inattendue (nil.controller). Où est le meilleur?
  2. Y a-t-il des conflits connus avec les versions données?
  3. Y a-t-il des solutions de contournement que je peux utiliser pour obtenir le fonctionnement d'Erubis?
+0

Erubis 2.6.4 prend en charge Rails 2.2 - il vient de sortir récemment. –

Répondre

1
  1. Soit le mettre sur le fond ou environment.rb, ou la mettre dans un initialiseur (config/initializers/anything.rb). Lorsque vous le placez devant le bloc Rails :: Initializer, l'environnement rails n'est pas encore complètement chargé et erubis/helpers/rails_helpers semble supposer un environnement Rails entièrement chargé.
  2. Je n'ai jamais utilisé d'érubis, donc je ne peux pas répondre à cela.
  3. Solutions de contournement? Voir n ° 1, je suppose.
+0

Merci, mais il y a encore cette erreur d'objet nil embêtant pour se débarrasser de. :/ –

+0

Impossible de dire ce qui cause cela sans voir une trace complète de la pile, et tout code personnalisé pertinent vers lequel pointe la trace de la pile. –

1

Les derniers erubis (2.6.4) et Rails 2.2 (et 2.3) ne sont toujours pas compatibles. Le problème principal est que le code ruby ​​généré par Erubis utilise "_buf" comme variable tampon et que Rails 2.2 et 2.3 nécessitent "@output_buffer" pour être utilisé. La raison de "@output_buffer" à utiliser est que les helpers ActionView comme CaptureHelper sont conçus autour de "@output_buffer" étant le tampon primaire dans le code généré.

J'ai créé une gemme appelée elkinsware-erubis_rails_helper qui corrige ces problèmes et autorise Erubis et Rails 2.3 (c'est sûr mais ça devrait marcher pour 2.2).

Dans votre fichier environment.rb ajouter:

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

Et vous pouvez ajouter une config/initializers/erubis_config.rb où vous pouvez régler les options 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 

La source est à http://github.com/elkinsware/erubis_rails_helper/tree/master

Permettez-moi de savoir si vous avez des problèmes avec la pierre précieuse.

+0

Des idées sur la façon de le faire fonctionner avec concat? J'ai essayé votre gemme mais cela n'aide pas, voir la question http://stackoverflow.com/questions/1850398/erubis-block-helper-throwing-error-with-concat – DEfusion

Questions connexes