在rails中声明一个全局模块

时间:2014-10-07 21:21:28

标签: ruby-on-rails ruby

如何声明rails应用程序中所有类和控制器中可用的模块,我想在此模块中声明常量

我也可以在模块中声明一个模块吗?

2 个答案:

答案 0 :(得分:0)

模块将随处可用,但将它们放在/ helpers /中是一个好主意。

做类似的事情:

module FooBarer
  def foo_the_bars(bars)
    bar.foo_this_bar
  end
end

您可以通过执行类似

的操作来设置全局变量
module GlobalINitializer
  def globals
   FOO = "bar"
  end
end

BUT

您应该在配置文件或初始化程序中设置全局变量。

如果您使用的是Rails 4.1,可以将它们放在secrets.yml中,或者将它们放在global_foos.rb中的config / initializers中,看起来像

#global foos
FOO = "bar"
THIS_THING = "that thing"

答案 1 :(得分:0)

我认为可以:

module A
  module ::MyGLobalModule
    def hello
      puts "hello"
    end
  end
end

class B
  extend ::MyGlobalModule
end

B.hello