在铁路中,我有一个家长班,继承自现役。 I m 试图在该类别中进行自由文字搜索,加上其他询问,这样,所有从中继承的阶层都能够使用自己的田地,根据模型进行改变:
#
# in base class
#
class GenericBase < ActiveRecord::Base
named_scope :freetext, lambda { |query|
if query.present?
{ :conditions => [ self.freetext_fields.join( LIKE ? or ),
( ["%#{query}%"]*self.freetext_fields.size ) ].flatten }
else
{}
end
}
end
#
# in inheriting class
#
class Person < GenericBase
set_freetext_fields %w(firstname lastname username email)
end
# or
class Address < GenericBase
set_freetext_fields %w(street city)
end
#
# in controller
#
def search
@people = Person.freetext(params[:query])
end
在上述例子中,我如何执行<代码>_freetext_fields。 可在<代码>GenericBase的所有继承模式中轻易使用。 这应当与set_table_name
非常相似。
我想在母体或组合式模块中加以实施,这样,继任班的APIC将尽可能清洁。