使用ruby 2.2,rails 4.1
我有一个搜索结果类,我想用它来根据搜索类型格式化正确的结果,即全文,关键字等。目前我在结果类中有不同搜索类型的单独模块,每个人都知道如何格式化自己的结果。我想要做的是将原始结果和类型传递给搜索结果初始化方法,并在方法中动态扩展正确的模块。那么实例化搜索结果类的类(在本例中为resultbuilder)调用模块中定义的方法来格式化结果。这需要作为实例方法调用,每个模块中定义相同的方法,因此无论搜索类型如何,resultbuilder都会调用一个方法。
类似的东西:
Class SR
def initialize(data, type)
@data = data
extend type.constantize
end
module FullText
def call
<format results>
end
end
end
我可以使扩展工作,因为我认为我失去了一些东西,因为SR类实例上没有调用方法。
还有其他方法来设置模块吗?他们必须被放入自己的文件中吗?我不想设置可以通过通用调用和结果方法动态使用的模块,从而将详细信息保留在resultbuilder之外。