1

我对这个片段的问题是它返回一个整数,这意味着在其他帐户中共享-1的通用。Message

  def build_results
    search = Sunspot.new_search(Message) do
      any_of do
        member.lists.map { |list| with :enterprise_list_id, list.search_id }
      end

我如何添加到此语句以查询所有消息,-1search_id将其限定为仅属于它member.account

我正在尝试将其范围限定为:

searchable :include => :repliable do
  integer :account_id do
    repliable.try(:account_id)
  end

和..

def build_results
  search = Sunspot.new_search(Message) do

    with :account_id, member.account_id

但是,即使我知道有一个应该返回的搜索结果,因为它们共享一个 commont ,但这不会返回任何内容account_id

4

1 回答 1

1

如果我正确理解了您的问题,那么您只需在您的消息可搜索块中添加此语句。

searchable do
  integer :some_search_ids, :multiple => true do
     member.lists.map { |list| list.search_id} if member.present?
  end

  integer :member_account_id do
    member.account_id if member.present?
  end
end

然后,

def build_results
  search = Sunspot.new_search(Message) do
    with(:some_search_ids, some_list_search_id)
    with(:member_account_id, some_member_account_id)
  end
end
于 2012-11-09T19:34:37.137 回答