Ceci peut être une question très boiteuse, mais je suis toujours confus quand devrais-je utiliser un joyau et quand devrais-je utiliser un plugin dans mon projet? P>
Quelle est la différence de base entre eux? P>
5 Réponses :
Les gemmes sont distribuées par des rubygems, qui est le gestionnaire de paquets officiel de la bibliothèque Ruby. Les plugins sont un moyen (probablement hacky) pour les plugins de rails. Je vous recommande d'utiliser des gemmes dans la mesure du possible, en raison de la résolution de dépendance. Rails3 Ecurages qui en emballant avec Bundler. P>
La différence de base est une gemme qui doit être installée sur le système exécutant votre application Rails, alors qu'un plugin est déployé avec votre application. Plus spécifiquement, les plugins vivent dans les fournisseurs / plugins, tandis que les gemmes doivent être installées à l'aide de Rake Gem Install Gem_Name. P>
Quant à l'utilisation de chacun, les gemmes ont tendance à être plus faciles à tenir à jour, mais plus spécifiquement, certaines gemmes utilisent du code C natif et sont compilées spécifiquement pour un système d'exploitation donné (tel que Nokogiri). Celles-ci doivent être installées comme gemmes telles qu'elles ne fonctionnent pas lorsqu'elles seront déplacées vers un autre système. ATTENDU QUE certaines choses comme ACTS_AS_COMMENTABLE utilisent le code rubis droit et peuvent être déplacés du système au système. P>
J'utilise des pierres précieuses chaque fois qu'un GEM fonctionne comme je le souhaite et que je souhaite faire un changement personnalisé pour une application de rails spécifique et ne pas affecter tout mon système. p>
de RailsGuides : P>
Un plugin Rails est une extension ou une modification du cadre principal. p> blockQuote>
de rubygems.org : P>
Un gemme est une application ou une bibliothèque de rubis emballée. P> blockQuote>
Donc, la plus grande différence entre le 2 est que les plugins de Rails sont spécifiquement conçus pour une utilisation dans Ruby sur les applications Rails, tandis que les gemmes ne sont pas. P>
Par exemple, regardons Geokit . P>
Le gemme (GEOKIT-GEM) fournit les opérations fondamentales basées sur l'emplacement. P>
Le plugin Rails (Geokit-Rails) mélange les résultats de localisation dans Activerecord. P> blockQuote>
Ici, vous pouvez voir que la gemme fournit au cœur de Geokit. Ce gemme peut être utilisé n'importe où, pas seulement une application Rails. Le plugin fournit des fonctionnalités supplémentaires pour ceux qui utilisent Geokit dans une application Rails. Dans ce cas, l'utilisation du plugin ainsi que le gemme est facultative. P>
Lorsque vous installez un plugin dans un projet, il ne peut être utilisé que dans le projet correspondant. Mais si vous installez un gemme, il peut être utilisé par chaque projet. C'est la principale différence de gemme et de plugins. p>