根据race_id和animal_id查找类似记录

时间:2017-10-27 09:02:50

标签: ruby-on-rails searchkick

我有一个名为Adoption的模型:

class Adoption < ApplicationRecord
  belongs_to :animal
  belongs_to :race

  searchkick language: 'french'

  def search_data
    {
      # name: name,
      # description: description,
      race_id: race_id,
      animal_id: animal_id
    }
  end
end

所以,现在我想找到类似的收养。我用相同的数据创建了两个采用记录。在rails控制台中,我执行以下命令:Adoption.reindex,然后:adoption = Adoption.find(1),最后:similars = adoption.similar(fields: %w[race_id^5 animal_id], limit: 3).records。它没有找到任何类似的收养。但是,如果我在name方法中取消注释search_data,重新索引并将name添加到字段数组中,则会找到采用方法。那么,我的代码有什么问题?任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

这是解决方案

similars = adoption.similar(fields: [:race_id, :animal_id], limit: 3).records