带太阳黑子的Rails添加子模型属性

时间:2015-05-15 13:56:42

标签: ruby-on-rails postgresql ruby-on-rails-4 nested-attributes sunspot-rails

所以,我一直在搞乱这个问题几个小时,我想我已经尝试过在这个问题上发布过的所有内容了。这是我的第一个问题。

所以,我正在尝试搜索模型(Locations):branch_name,:branch_address1等及其子模型(Employees):first_name在该模型中用作自己的属性。因此,如果位置员工姓名在搜索查询中,则所需的效果将是位置(作为结果)将返回。我试图用这样的代码来实现这个目标:

class Location < ActiveRecord::Base
  belongs_to :partner
  has_many :employees, dependent: :destroy

  validates_presence_of :branch_name, :branch_address1, :branch_country, :branch_zip_code
  accepts_nested_attributes_for :employees, allow_destroy: true, :reject_if > proc { |attributes| attributes['first_name'].blank? }

  searchable do
    text :branch_name, :branch_address1, :branch_city, :branch_zip_code
    text :employee_attributes do
      :first_name
      if :employee_attributes
      end
    end
  end

end

我也想使用父模型(合作伙伴)名称,但我也无法使用它。

我可以在Locations表中创建一个新列来捕获每个新员工姓名,还是可以在该模型中搜索孩子?

1 个答案:

答案 0 :(得分:0)

我使用solr with rails,我遇到过类似的问题。 就像你问过新专栏一样,我在solr中添加了一个新字段

  

伪代码

searchable do
 text :first_name, :stored => true
 string  :partner_name, :stored => true do
   partner.name
 end
end

请注意,存储的字段会增加成本。

在我的情况下,我不得不触发多次查询,耗时47秒,存储值帮助我避免多次查询,单次查询耗时5秒。

您需要重新编制索引才能获得结果。