2009-05-24 3 views
-1

dit si je développe une application Ruby on Rails en utilisant Rails 2.3.2, sera-t-il compatible avec Passenger sur mon hébergeur?dit si je développe une application Ruby on Rails en utilisant Rails 2.3.2, cela sera-t-il généralement compatible avec Passenger sur mon hébergeur?

Si je ssh à ma société d'hébergement et tapez les rails -v, j'obtiens 2.2.2 ... on dirait qu'ils pourraient utiliser Rails 2.2.2.

Donc, si je développe une application Rails sur mon Macbook et ftp tous les fichiers là-bas, le passager fonctionnera-t-il habituellement bien avec le code généré avec la version actuelle de Rails?

Répondre

2

Figer les rails dans le fournisseur/les rails à l'aide de la tâche de râteau intégrée. De cette façon, votre application utilisera la version de rails que vous souhaitez, peu importe où vous l'avez déployée.

rake rails:freeze:gems 

Et la façon la plus simple de faire une version spécifique que je connais.

rake rails:freeze:edge RELEASE=2.3.2.1 

Maintenant, votre version de rails vous accompagnera lorsque vous enverrez votre application.

Vous pouvez décompresser d'autres dépendances gemmes en fournisseur/gemmes pour n'importe quelle gem que vous utilisez et vous voulez vous assurer qu'il est disponible partout où vous déployez l'application.

rake gems:unpack 

Et pour assurer que leurs dépendances aller à:

rake gems:unpack:dependencies 

Je suggère également que vous vérifiez qu'ils sont en cours d'exécution de la dernière version du passager.

+0

Aurait-il également besoin de modifier son chemin ou les Rails gelés seront-ils automatiquement récupérés quel que soit le chemin? –

+0

Je crois que l'application Rails va d'abord vérifier les fournisseurs/rails, puis aller sur le système pour obtenir la version définie dans environment.rb – nitecoder

1

Je voudrais vérifier la version du passager qu'ils ont installé (ou confirmer qu'ils l'ont installé du tout). Je vous suggère également de geler votre version de Rails.

+1

Ceci est correct et important - les anciennes versions de Passenger ne prennent pas en charge le changement de nom de app/controllers/application.rb de Rails 2.3 en application_controller.rb, et l'étoufferont même si Rails est figé dans le fournisseur. –

0

Juste une seconde chose pour la réponse de railsninja. En premier lieu, cela ne fonctionnera pas immédiatement.

Cet hôte est-il un vps pour vous ou avez-vous un accès sudo en quelque sorte?

Si oui, je vous suggère de faire des pierres précieuses de râteau: au lieu d'installer des pierres précieuses: déballer, parce que certaines des pierres précieuses sont os dépend par exemple (Rcov, RedCloth ... etc.)

Je vais demander à la société d'hébergement de la configuration de leur passager, la question importante sera si elles utilisent RailsSpawnMethod: smart ou smart-lv2 (par défaut) .Si elles utilisent la méthode intelligente, alors il est préférable de geler vos gemmes et rails sinon aura le problème compatible comme vous pouvez trouver la référence du manuel d'utilisation de passager au sujet du RailsSpawnMethod.

Il sera presque 100% compatible si vous geler vos gemmes (toutes les gemmes doivent être déclarées correctement dans l'environnement.rb avec config.gem, par exemple (config.gem 'will_paginate',: source => "http://gems.github.com ")) et RAILS !!!!!

Questions connexes