Ruby on rails 如何为Rails上的太阳黑子搜索关联模型设置可搜索的多个属性

Ruby on rails 如何为Rails上的太阳黑子搜索关联模型设置可搜索的多个属性,ruby-on-rails,sunspot,Ruby On Rails,Sunspot,我有一些模型,其关系如下: 订单有许多订单项(模型订单项) 订单属于一个具有关联模型公司的供应商(模型用户) 我想根据顺序对这些全文进行搜索: 1) OrderItem的属性:名称、说明 2) 供应商的公司名称 然后我设置了如下可搜索属性: searchable do ... text :order_items do order_items.map { |item| item.name item.description } # 1 end text :vendor do v

我有一些模型,其关系如下:

订单有许多订单项(模型订单项)

订单属于一个具有关联模型公司的供应商(模型用户)

我想根据顺序对这些全文进行搜索:

1) OrderItem的属性:名称、说明
2) 供应商的公司名称

然后我设置了如下可搜索属性:

searchable do
... 
text :order_items do
  order_items.map { |item| item.name item.description }    # 1
end  

text :vendor do
  vendor.company.name  # 2
end
当执行重新索引时,行#1和#2都将报告为错误

因此,请帮助我们如何为这两种情况编写代码。
谢谢。

您可以在模型的类和实例方法上编写可搜索的方法。执行以下操作:

class Order

  searchable do
    text :order_items_search
    text :vendor_search
  end

  def order_items_search
    self.order_items.map{|item| item.name + ',' + item.description}.join(',')
  end

  def vendor_search
    self.vendor.company.name
  end
end

您在哪个模型中添加了这个可搜索块?按顺序模型,正如我想按顺序搜索一样。