Đỗ *_*iến 3 ruby oop ruby-on-rails class
目前我有一个这样的模块:
module MyModule
def A
end
.....
end
Run Code Online (Sandbox Code Playgroud)
我有一个模型,我想使用方法A作为类方法.然而,事情是我只需要一个方法.如果我扩展它,我会将其他不必要的类方法扩展到我的模型中.因此,有没有办法像MyModule.A那样做,而不是像这样重写模块:
module MyModule
def A
...
end
def self.A
...
end
.....
end
Run Code Online (Sandbox Code Playgroud)
如果我这样做的话,它会重复我自己.我仍然觉得在Rails中有更好的方法.
使用Module#module_function使一个单一的功能是一个模块功能:
module M
def m1; puts "m1"; end
def m2; puts "m2"; end
module_function :m2
end
Run Code Online (Sandbox Code Playgroud)
要么:
module M
def m1; puts "m1"; end
module_function # from now on all functions are defined as module_functions
def m2; puts "m2"; end
end
M.m1 #? NoMethodError: undefined method `m1' for M:Module
M.m2 #? "m2"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
450 次 |
| 最近记录: |