Passenger supporte Bundler depuis un certain temps, mais c’est fait
assez salement[1] et y a des problèmes avec Rack et JSON qui sont déjà
loadés par Passenger avant qu’il n’essaye de faire un Bundler.setup.
Il y a aussi des problèmes parce que Bundler.require serait plus
approprié que Bundler.setup, donc on a des requires « manuels » dans
environment.rb ou à des endroits plus appropriés (require ‘redis’ dans
config/initializers/redis.rb), uniquement pour la production/staging,
en dév ils ne sont pas nécessaires…

Le pire étant concernant JSON, vu que la constante est bien là, mais
un ActiveRecord::Base#to_json renvoie une chaîne qui ressemble à un
inspect (et donc n’est pas du JSON valide) si la version de JSON dans
le Gemfile n’est pas la même que celle qui est loadée par Passenger
avant de loader l’application. Exemple de commits pour résoudre ce
problème : https://gist.github.com/f22e948d0335506ac6a4

L’étude du code de loading d’application de Passenger m’a permis de
trouver aussi qu’on peut mettre un fichier config/setup_load_paths, et
dans ce cas ça ignore complètement le chargement de Bundler de
Passenger, ce qui est mieux si l’application gère Bundler elle-même
(Rails 3 ou Rails 2 avec Bundler configuré comme indiqué dans la
doc[2]).

J’espère que ça pourra t’aider.

[1]: 
https://github.com/FooBarWidget/passenger/blob/master/lib/phusion_passenger/utils.rb#L273-327
[2]: http://gembundler.com/rails23.html

-- 
Étienne Barrié

-- 
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]

Répondre à