好的,我有这个应该包含在许多 Rails 应用程序中的 Ruby 脚本。所以我不想把它分解成碎片并将其塞进一个特定的应用程序中,而是宁愿将它保持在一个部分并让 Rails 应用程序加载它。该脚本主要来自模型、邮件程序和很少的控制器。
所以如果我的脚本是tools.rb
,我应该把它放在我的 Rails 文件树的什么位置,我应该如何/在我的 Rails 应用程序中的什么位置包含它?该脚本还附带 YAML 文件。
这是我学习 Rails 的第二天,所以请多多包涵。
好的,我有这个应该包含在许多 Rails 应用程序中的 Ruby 脚本。所以我不想把它分解成碎片并将其塞进一个特定的应用程序中,而是宁愿将它保持在一个部分并让 Rails 应用程序加载它。该脚本主要来自模型、邮件程序和很少的控制器。
所以如果我的脚本是tools.rb
,我应该把它放在我的 Rails 文件树的什么位置,我应该如何/在我的 Rails 应用程序中的什么位置包含它?该脚本还附带 YAML 文件。
这是我学习 Rails 的第二天,所以请多多包涵。
您可以将所有额外的东西保存在/app/modules
或/lib
中。我更喜欢lib
。放入lib
文件夹后,在任何初始化程序中都需要它(或创建一个)
require "./lib/tools"
在/config/initializers/tools.rb
和 tadaa !您可以在 rails 应用程序的任何地方使用相应的类/模块!
所有的 YAML 文件都应该放在/config/
.
*** 修复 '/lib/tools' 中的语法
您可以将自己的.rb
文件包含在lib folder
. 您可以在自己的 rb 文件下包含模块、类...等。
如果您想自动加载或自动要求您的自定义库代码,您必须打开config/application.rb
并添加下一行,例如:
config.autoload_paths += %W(#{config.root}/extras #{config.root}/lib)
你可以看看:
http://reefpoints.dockyard.com/ruby/2012/02/14/love-your-lib-directory.html
您yaml
的文件应该在/config/
文件夹内。
问候!
如果您有任何module
或class
在脚本中定义并在应用程序中使用该模块或类,您只需将其放入lib
. 它将在应用程序的任何地方访问。如果您需要初始化一些需要您的应用程序的东西,请加载该文件。除非需要,否则不要加载东西。如果您认为它必须在应用程序启动之前加载。然后你可以放入config/initializers
yml
文件可以像下面一样在某些initializers
文件中加载(可能在您的文件中tools.rb
):
MY_TOOLS = YAML.load_file("#{RAILS_ROOT}/config/tools.yml")
然后你可以MY_TOOLS
在应用程序的任何地方使用。