Rails with Searchkick:通过联接表获取结果

时间:2018-11-24 16:34:05

标签: ruby-on-rails elasticsearch searchkick

我开始在我的应用程序中使用searchkick,我有两个模型:房屋和地址(属于房屋)。

房子:

https://dashboard.heroku.com/apps/<YOUR_APP_NAME>/deploy

地址:

https://dashboard.heroku.com/apps/<YOUR_APP_NAME>/activity

在我的控制器中,

class House < ApplicationRecord
 searchkick
 has_one :address,  dependent: :destroy
end

现在,当我搜索表class Address < ApplicationRecord searchkick belongs_to :house end 中的房屋数据时,searchkick正常工作,但是例如,如果我在“地址”表中查找一个字段,则根本不会得到任何结果。 可以这样做吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

我认为您也需要索引地址。为此,将以下代码添加到您的House模型中:

def search_data
  attributes.merge(
      address_city: self.address.try(:city),
      address_zip: self.address.try(:zip)
  )
end

可以根据您在Address模型中的字段随意修改以上代码。

此外,添加以上代码后,不要忘记重新索引。