我对此代码段的问题是,它返回一个整数-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
如何添加到此语句以查询-1
作为search_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
,这也不会返回任何内容。
答案 0 :(得分:1)
如果我正确理解了您的问题,那么您只需要在Message searchable块中添加此语句。
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