我的搜索表单存在问题,搜索多个单词。
我的模型中有这个功能。首先,我在KeyWords
表中搜索我需要搜索库表的外来ID。
当我在KeyWords
表格上搜索一个单词时,这可以正常工作,但我不知道如何搜索多个单词,因为每个单词都会返回一组ID。我不知道如何将它们一起折叠以在图书馆中搜索。
这是我的图书馆模型中的搜索功能:
def self.search(search)
if search
where("id in (?)", KeyWords.where("word like ?", "%#{search}%").pluck(:library_id))
else
all
end
end
我试图做的就是拆分搜索参数,并且对于那里的每个单词,搜索key_words
:
# array = Array.new
# key_words = search.to_s.split(" ")
# key_words.count.times do |i|
# ids[i] = PalabrasClave.where("palabra like ?", "%#{key_words[i]}%").pluck(:daw_mate_acad_id)
# end
# where("id in (?)", ids.flatten.uniq)
但这不起作用。我认为搜索给了我一系列ID,我可以稍后使用join
方法崩溃,但遗憾的是这不起作用。有什么想法吗?
答案 0 :(得分:2)
当我应该初始化array = Array.new
时,我正在呼叫ids = Array.new
:
ids = Array.new
key_words = search.to_s.split(" ")
key_words.count.times do |i|
ids[i] = PalabrasClave.where("palabra like ?", "%#{key_words[i]}%").pluck(:daw_mate_acad_id)
end
where("id in (?)", ids.flatten.uniq)