Soy nuevo en Rails y estoy confundido sobre el concepto de complementos de gemas &. ¿Alguien puede explicarlos por mí?¿cuál es la diferencia entre gem y plugin?
Respuesta
Los complementos se utilizan cada vez menos, así que quédate con las gemas. Las gemas y los complementos pueden hacer exactamente lo mismo, por eso son confusos. Sin embargo, las diferencias son la forma en que están organizadas y, lo más importante, cómo se gestionan las gemas, como bundler
o config.gem
. Es mucho más fácil administrar gemas y sus versiones. Los complementos se deben instalar en la carpeta vendor
donde también se puede instalar gems
en esa carpeta si necesitan personalizarse o se pueden instalar en un directorio gem siempre que los rieles comprendan dónde se encuentra ese directorio. Cuando comenzaron los rieles, la mayoría de las personas usaba complementos para agregar funcionalidad, pero los desarrolladores se dieron cuenta rápidamente de que las gemas ofrecían una mejor manera de empaquetar y actualizar bibliotecas, por lo que la mayoría de los complementos migraron a gemas y se crearon menos complementos.
Los complementos son solo bibliotecas cargadas desde un directorio específico, las gemas se cargan directamente a través de Bundler o RubyGems.
Donde esto realmente hace una diferencia es el mantenimiento y la gestión. Lo que sucede cuando quieres el último y mejor plugin de authlogic, también necesitas actualizar los archivos en tu directorio. Eso no suena tan mal cuando se trata de un complemento, pero ¿qué pasa con algo que se actualiza constantemente? Había/hay un sistema existente para el empaquetado y la distribución de códigos (RubyGems), que se presta para administrar tales cosas.
Considere el ejemplo authlogic nuevamente, ¿qué ocurre si la nueva versión requiere alguna otra dependencia ahora? Con RubyGems, el archivo gema define explícitamente esa relación, el sistema de complemento no y esa definición habría sido redundante.
Con la llegada de Bundler en los rieles 3.x se ha vuelto muy fácil administrar y distribuir las gemas que usa su proyecto.
TL; DR: Los complementos son básicamente gemas sin la información de embalaje.
Gem y Plugin
joya se almacena en archivos lib
Una joya es una aplicación de Rubí empaquetado utilizando el sistema de envasado definido por RubyGems.
plugins se almacenan en vendedores/plugins
A Rails Plugin es una aplicación de Rubí empaquetado que se extiende el marco rieles centrales.
- 1. ¿Cuál es la diferencia entre `require` y` gem`
- 2. Cuál es la diferencia entre maven-rpm-plugin y rpm-maven-plugin
- 3. ¿Cuál es la diferencia entre {0} y ""?
- 4. Cuál es la diferencia entre = y: =
- 5. ¿Cuál es la diferencia entre .ToString (+) y ""
- 6. Cuál es la diferencia entre $ (...) y `...`
- 7. ¿cuál es la diferencia entre:.! y: r !?
- 8. ¿Cuál es la diferencia entre ".equals" y "=="?
- 9. ¿Cuál es la diferencia entre dict() y {}?
- 10. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 11. ¿Cuál es la diferencia entre "$^N" y "$ +"?
- 12. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 13. ¿Cuál es la diferencia entre + = y = +?
- 14. ¿Cuál es la diferencia entre " " y ""?
- 15. Cuál es la diferencia entre $ y jQuery
- 16. ¿Cuál es la diferencia entre 'joya JSON" y 'joya json_pure'?
- 17. ¿Cuál es la diferencia entre los archivos apklib y jar?
- 18. ¿Cuál es la diferencia entre jQuery live() y el plugin liveQuery?
- 19. OpenGL (ES) - ¿Cuál es la diferencia entre frustum y orto?
- 20. Cuál es la diferencia entre la función() {}() y la función() {}()
- 21. ¿Cuál es la diferencia entre la abstracción y la encapsulación?
- 22. ¿Cuál es la diferencia entre @ y $ y% en MSBuild?
- 23. ¿Cuál es la diferencia entre la gema Rspec y Rspec-Rails?
- 24. ¿Cuál es la diferencia entre la vinculación estática y dinámica?
- 25. ¿Cuál es la diferencia entre la sección .got y .got.plt?
- 26. ¿Cuál es la diferencia entre el colado y la coerción?
- 27. ¿cuál es la diferencia entre el complemento y la biblioteca?
- 28. ¿Cuál es la diferencia entre el casting y la conversión?
- 29. ¿Cuál es la diferencia entre WPF y la aplicación Silverlight?
- 30. ¿Cuál es la diferencia entre uno mismo y la ventana?
posible duplicado de [En Ruby on Rails, ¿cuál es la diferencia entre instalar algo como una gema o como un complemento?] (Http://stackoverflow.com/questions/3629919/in-ruby-on-rails-whats- the-difference-between-Installing-something-as-a-gem-or) –