在 Rails.application 初始化器中导入模块

Posted

技术标签:

【中文标题】在 Rails.application 初始化器中导入模块【英文标题】:Import module in Rails.application initializer 【发布时间】:2021-09-17 23:25:21 【问题描述】:

如何从我的config/initializer 之一的lib/module 中定义的方法中受益?

lib/my_module
----

module MyModule
   def custom_method
      12
   end
end

这样我就可以按如下方式使用了

config/initializer/random_initializer
----

# following imports do not seem to work
# include MyModule
# require 'my_module'
 
Rails.application.configure do
    config.blabla = custom_method
end

【问题讨论】:

【参考方案1】:

你可以使用module_function

# lib/my_module
module MyModule
 def x
  0
 end
 module_function :x
end

# config/initializer/random_initializer
require "my_module"
Rails.application.configure do |config|
 config.blabla = MyModule.x
end

【讨论】:

以上是关于在 Rails.application 初始化器中导入模块的主要内容,如果未能解决你的问题,请参考以下文章

ruby Rails.application.routes.recognize_path

rails使用bootstrap

在构造函数初始化器中初始化成员数组

Swift 不能在属性初始化器中使用实例成员

SwiftUI Maps - 不能在属性初始化器中使用实例成员;属性初始化程序在 'self' 可用之前运行

不能在属性初始化器中使用实例成员“pdfName”;属性初始化程序在“自我”可用之前运行