我有一个Controller
,现在包含两个Module
s。
class SomeController < ApplicationController
include ModuleA
include ModuleB
def index
if something?
a_method # Method from ModuleA
else
b_method # Method from ModuleB
end
end
end
出于某种原因,ModuleA
和ModuleB
具有相同的逻辑(方法),但方法&#39;实施是不同的。所以,我需要它们在单独的文件(模块)中才能轻松重构,因为我需要经常更改方法的实现。现在,我在不同的模块中使用不同的方法名称(前缀)。
module ModuleA
def a_method
a_other_method
...
end
private
def a_other_method
...
end
end
module ModuleB
def b_method
b_other_method
...
end
private
def b_other_method
...
end
end
如果我在method
的两个模块other_method
中使用相同的方法名称(method
和ModuleA
),则other_method
的{{1}}运行ModuleB
我收到了错误。
是否可以在模块中使用相同的方法名称?我需要如何命名它们,使method
从同一模块运行other_method
,并在其中实现?{/ p>
感谢您的帮助!