是否有替代从嵌套类调用Module方法?代码:
module GroupSweeper
def expire_cache(paths)
paths.each do |path|
expire_page(path)
end
end
class SweeperOne < ActionController::Caching::Sweeper
include GroupSweeper
observe Subject
def after_save(subject)
expire_cache([root_path,subjects_path])
end
def after_destroy(subject)
expire_cache([root_path,subjects_path])
end
end
end
如何在没有明确包含的情况下从SweeperOne中调用GroupSweeper的expire_cache方法?
感谢您的任何意见。
答案 0 :(得分:0)
我可能错了,因为我自己对ruby很新,但是这个类可能不应该包含它本身所属的模块。
也许如果你用一个end
关闭模块,包括它应该可以工作。
答案 1 :(得分:0)
你在这里有一些循环依赖。
那不行。
回答你的ruby方法/嵌套类问题:
module MyModule
def my_method
puts "yo yo yo"
end
class MySweetClass
def sweet_method
puts "swweeeeeeeeeeeet"
end
end
end
你想打电话给MySweetClass的sweet_method,你会改成:
module MyModule
def my_method
puts "yo yo yo"
MySweetClass.new.sweet_method
end
class MySweetClass
def sweet_method
puts "swweeeeeeeeeeeet"
end
end
end
#....
class MyClass
include MyModule
end
MyClass.new.my_method
然而!我认为你在轨道扫地机方面走错了路。这个答案非常具有战术性,但我认为你应该提出一个关于你想要做什么关于铁轨扫地机的问题。