tutorial rails que framework ejemplos descargar curso caracteristicas ruby-on-rails-3 ruby-on-rails-plugins rails-engines railtie

ruby-on-rails-3 - framework - ruby on rails que es



Diferencias entre las vulnerabilidades y los motores en Ruby On Rails 3 (2)

Railtie probablemente pueda hacer lo que usted describe, pero puede ser más conveniente usar un motor. El motor puede tener su propia configuración y también actúa como una aplicación Rails, ya que le permite incluir el directorio / app con controladores, vistas y modelos de la misma manera que una aplicación Rails normal.

Lee este blog para más información

Leí algunos documentos sobre estos argumentos, pero no entendí claramente qué son, cuáles son las diferencias entre ellos y si uno de ellos se ajusta a mis necesidades.

Necesito escribir una aplicación que pueda ser conectada a otra aplicación y quiero incluirla en otras aplicaciones como una gema. Esencialmente necesito un par de modelos, un controlador y sin vistas, más una inicialización, soporte para los parámetros de configuración provenientes de la aplicación de alojamiento y un generador.

¿Estoy en el camino correcto?

¿Qué debería leer para entender cómo hacer eso?

Actualizar:

Se puede encontrar un artículo muy bueno con muchos detalles af here .

Esencialmente:

Railtie es el núcleo de Rails Framework y proporciona varios ganchos para extender Rails y / o modificar el proceso de inicialización.

A Rails :: Engine no es más que un Railtie con algunos inicializadores ya configurados. Y dado que Rails :: Application and Rails :: Plugin son motores, la misma configuración que se describe aquí se puede usar en los tres.


Rails::Engine hereda toda la funcionalidad de Rails::Railtie y agrega un poco más ( Engine < Railtie fuente de Engine < Railtie [los documentos en la fuente son bastante buenos]).

Básicamente, railtie (== tu clase que hereda de Rails::Railtie ) te brinda todo lo que necesitas para interactuar con los procesos de la aplicación Rails. Y el motor (== tu clase que hereda de Rails::Engine ) es railtie +

  • algunos inicializadores configurados (con la ayuda del método de initializer ): hace que la estructura de la carpeta similar a la aplicación Rails del motor se pueda cargar en la aplicación real, de modo que

    el motor cargará automáticamente app/models , app/controllers , app/helpers en su aplicación real, cargará rutas desde config/routes.rb , cargará config/locales/* regionales desde config/locales/* , y cargará tareas desde lib/tasks/* .

    Puedes ver los inicializadores configurados con este código:

    require ''rails/all'' Rails::Railtie.initializers.map(&:name) #=> [] Rails::Engine.initializers.map(&:name) #=> [:set_load_path, :set_autoload_paths, :add_routing_paths, :add_locales, :add_view_paths, :load_environment_config, :append_assets_path, :prepend_helpers_path, :load_config_initializers, :engines_blank_point]

  • algunos métodos de conveniencia, como isolate_namespace .