我读了这些参数的一些文件,但我没了解清楚它们是什么,什么是它们之间的区别,如果他们中的一个适合我的需要。
我需要写一段程序的,可以在其他应用程序中插入,我想包括它在其他应用程序作为宝石。从本质上讲,我需要从托管的应用程序和发电机来配置参数几个模型,一个控制器和没意见,再加上一些初始化的支持。
我是在正确的道路?
我应该怎么看明白该怎么做?
更新:
一个很漂亮的文章有很多的细节可以发现qazxsw POI。
实质上:
Railtie是Rails框架的核心,并提供若干钩子延伸导轨和/或修改的初始化过程。
一个Rails ::引擎无非是Railtie多用已经设置一些初始化。而且,由于导轨::应用和Rails ::插件是引擎,这里所描述的相同的配置,可以在所有三个使用。
Railtie大概可以做你的描述,但它可能是更理想的是使用的发动机。该引擎可以有自己的设置,也就像一个Rails应用程序,因为它可以让你以包括作为一个普通的Rails应用程序控制器,视图和模型相同的方式/ app目录。
Read this blog for more info从Rails::Engine
继承了所有功能,并增加了一些更(Rails::Railtie
[源文档都还不错])。
基本上,railtie(==类,从Engine < Railtie
source code继承)给你所有你需要用Rails应用程序交互。
和发动机(==类,从Rails::Railtie
继承)是railtie +
Rails::Engine
方法的帮助):使你的发动机的Rails应用程序般的文件夹结构加载到真正的应用程序,从而使
引擎会自动从initializer
加载app/models
,app/controllers
,app/helpers
到你的真正的应用程序,从config/routes.rb
负载路线,从config/locales/*
负载语言环境和负载任务。
你可以看到这个代码设置初始化:
lib/tasks/*
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]
。