2013-07-11 38 views
1

例子:使用太阳黑子到模型层次向下搜索

我有以下几点:

class Person < ActiveRecord::Base 
    has_many :educations 
end 

class Education < ActiveRecord::Base 
    belongs_to :school 
    belongs_to :degree 
    belongs_to :major 
end 

class School < ActiveRecord::Base 
    has_many :educations 
    # has a :name 
end 

我希望能够重返谁去一个特定的学校,所以我把PeopleController#索引我所有的人有

@search = Person.search do 
    keywords params[:query] 
end 

@people = @search.results 

如何在Person模型上创建可搜索的方法以进入学校?难道我做这样的事情:

searchable do 
    text :school_names do 
    educations.map { |e| e.school.name } 
    end 
end 

,我最终会与教育(学位等),每个属性做或我可以做一个搜索的方法教育和莫名其妙“呼叫”,从Person.searchable?

感谢

回答

0

这将是最好的,如果你把所有的索引字段的声明在同一个地方的具体型号。

此外,您正在做一个好的索引:school_names,只是对您想索引的其余关联字段做同样的事情。