gpt4 book ai didi

ruby-on-rails - ruby 模块作为方法的集合

转载 作者:数据小太阳 更新时间:2023-10-29 06:55:38 24 4
gpt4 key购买 nike

我有一个 Rails 应用程序,它从某些 Java 服务加载大量数据。我正在编写一个模块,允许我用这些数据填充一些选择框,我正在尝试正确地包含这些,以便我可以在我的 View 中引用它们。这是我的模块

module FilterOptions
module Select

def some_select
return "some information"
end
end
end

我的想法是在我的 application_helper 中包含 FilterOptions,我认为我可以使用 Select::some_select 引用我的方法,但事实并非如此。我必须 include FilterOptions::Select 然后我可以自己引用方法 some_select 。我不希望这样,因为我认为这会让那些可能不知道 some_select 来 self 自己的模块的人感到有点困惑。

那么,我该如何编写类似于公共(public)静态方法的模块方法,以便我可以包含我的主模块,并使用子模块命名空间引用我的方法,如 Select::some_select

最佳答案

如果您在模块本身的上下文中定义模块方法,则无需导入即可调用它们:

module FilterOptions
module Select
def self.some_select
return "some information"
end
end
end

puts FilterOptions::Select.some_select
# => "some information"

也可以导入一个模块,而不导入下一个模块,而是通过名称引用它:

include FilterOptions
puts Select.some_select
# => "some information"

关于ruby-on-rails - ruby 模块作为方法的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2086862/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com