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#index 我有

@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 中“调用”它?

谢谢

4

1 回答 1

0

最好将特定模型的所有索引字段的声明保留在同一位置。

此外,您在索引 :school_names 方面做得很好,只需对您想要索引的其余关联字段执行相同的操作即可。

于 2013-08-29T01:01:08.320 回答