web-dev-qa-db-fra.com

Quelle est l'utilisation de Gemfile dans les rails?

Quelle est l'utilisation de Gemfile dans les rails?

Comment utiliser Gemfile?

47
vijay

Au cours de votre développement dans Rails, vous voudrez parfois fournir certaines fonctionnalités dont vous avez besoin, mais vous ne savez pas comment procéder ou vous ne souhaitez pas les implémenter vous-même, car de nombreuses son travail a été mis au point par des développeurs talentueux.

Ces développements dont vous pourriez avoir besoin (authentification d'utilisateur, système de messagerie, gestionnaires d'actifs, géolocalisation, système de pagination, liens vers des services extérieurs tels qu'Amazon AWS et Rails lui-même) sont appelés Ruby Gems. Ce sont des progiciels Ruby, pas nécessairement liés à Rails, mais comme Rails est basé sur Ruby, 98% des gemmes peuvent être mises à disposition du code de votre application Web Rails.

Beaucoup de gemmes peuvent être trouvées dans github , mais son funner est de rechercher des gemmes via Ruby-gems ou Ruby-toolbox

Votre gemfile est une liste de tous les gems que vous souhaitez inclure dans le projet . Il est utilisé avec bundler (également un gem) pour installer, mettre à jour, supprimer et gérer les gems utilisés.

La gemfile a un autre objectif: vous pouvez regrouper les gems dans les groupes :development, :test, :assets, :production, etc., et les Rails sauront quand inclure les gems. Par exemple:

group :development, :test do
    gem "rspec-Rails"
    gem "factory_girl_Rails"
    gem "guard-rspec"
end

Notez que sur Rails 4, le groupe assets est obsolète. 

Ces gemmes appartiennent à l'environnement de développement et à l'environnement de test puisqu'elles servent à tester l'application. Vous n’avez pas besoin qu’ils soient disponibles dans l’environnement de production (vous pouvez le faire, mais cela alourdira inutilement la mémoire).

So - Pour utiliser la gemfile, écrivez simplement le joyau que vous souhaitez installer, par exemple

gem 'devise'

assurez-vous d’installer bundler au préalable (dans votre console/cmd/ssh) avec 

$ gem install bundler

et ensuite écrire dans la console

bundle install

vous remarquerez qu'un autre fichier gem apparaît! Gemfile.lock Ce fichier, comme vous le verrez si vous l'ouvrez avec un lecteur de texte, répertorie toutes vos gemmes avec leur version et leurs dépendances. Cela vous sera utile lorsque vous aurez besoin de savoir quelles versions des gems que vous avez installées.

Pour plus de lecture sur la Gemfile - à lire sur la page d'ensemble

pour plus d'informations sur la sélection d'un joyau, vous pouvez commencer par this _

Bonne chance et amusez-vous bien!


Ok, c'est quoi ce Gemfile.lock qui a été créé?

Comme son nom l'indique, Gemfile.lock verrouille toutes les versions de toutes les gemmes installées. Donc, si Gemfile est ce qui doit être installé, le fichier de verrouillage est ce qui a été installé et quelle version est réellement requise pour que l'application soit opérationnelle.

Si vous ne disposez pas des gems dans cette version spécifique (comme spécifié dans Gemfile.lock), Rails se plaindra et vous devrez soit installer les gems manquants (via bundle install), soit résoudre manuellement les conflits (je crois que le bundler vous en donnera indices sur cela)

Quelques choses à savoir sur Gemfile.lock

  • si vous le supprimez accidentellement, il sera régénéré lorsque vous exécuterez bundle install. Si vous supprimez accidentellement Gemfile, vous n’avez pas de chance. Vous devriez utiliser git :)
  • Heroku se fiche de Gemfile.lock car il réinstallera toutes les pierres précieuses. Donc, pour Heroku, vous devez définir la version de gem souhaitée, sinon Heroku installera toujours la dernière version de gem, ce qui peut poser problème
  • Conservez le fichier Gemfile.lock dans votre projet pour que vous sachiez toujours quelle version de gems permet à votre application de fonctionner correctement.
87
Nick Ginanto

Gemfiles sont des configurations pour Bundler , utilisé pour gérer les dépendances Ruby de votre application. Ce site Web contient beaucoup de documentation, y compris la Page de manuel de Gemfile .

10
willglynn

Je vais essayer de donner une réponse simple

Explication par analogie

Supposons que vous vouliez faire une voiture. À partir de rien. Maintenant, ce sera un cauchemar. Vous devez construire: le châssis, le moteur, le corroborateur, le radiateur, le refroidissement, la ventilation, etc., etc. 

Les pierres précieuses vous permettent d'utiliser des pièces de voiture que d'autres personnes ont fabriquées auparavant

Mais vous n'êtes pas le seul à construire une voiture. Tous ceux qui ont déjà construit une voiture ont essentiellement fait les mêmes choses. Il y a eu des gens intelligents qui sont venus fabriquer des moteurs à combustion, etc. bien avant que vous ne le fassiez ............ tant pis.

Vous n'avez pas besoin de réinventer la roue. Pourquoi créer le vôtre alors que vous pouvez simplement obtenir le meilleur équipement directement dans les rayons? Et si vous pouviez obtenir l'un des meilleurs moteurs disponibles, créé par les ingénieurs les plus talentueux du monde, sans lever le petit doigt? Est-ce que tu vas passer un an à essayer de faire le tien?

Donc, en gros, plutôt que de tout fabriquer vous-même, vous écrivez une liste de toutes les pièces dont vous avez besoin. Et c’est essentiellement un fichier de gemmes:

  • Moteur Rolls Royce
  • Ceintures de sécurité AutoLive
  • Michellin pneus.
  • Phares de nuit PIAA
  • etc.

Ce mon ami, est fondamentalement votre fichier de gem

3
BKSpurgeon

Votre système peut avoir beaucoup de gemmes ... donc peut avoir plusieurs versions du même gem.

Un Gemfile spécifie la liste de gems avec son versions qui doit être utilisé/chargé/(installer si non présent) à chaque exécution de votre application Rails. ou quoi que ce soit avec bundle exec . .

1
Rahul garg

Tout d'abord, qu'est-ce qu'un joyau?

Selon Wikipedia:

RubyGems est un gestionnaire de paquets pour le langage de programmation Ruby qui fournit un format standard pour la distribution des programmes Ruby et les bibliothèques

Gemfile

Un Gemfile est un fichier que nous créons et qui est utilisé pour décrire gem dépendances pour les programmes Ruby

Maintenant, en des mots très très simples:

Gem peut être considéré comme une bibliothèque que vous pouvez utiliser dans votre code ... Exemple: faker gem

Votre code peut utiliser les fonctionnalités de la variable faker gem pour générer de fausses données. 

Vous pouvez maintenant répertorier toutes les gemmes requises par votre projet dans le fichier gem . Lorsque vous effectuez une installation en groupe, elles sont toutes installées.

0
slal