因为直接用Keywords.knowledges
遇到了很多问题。
印象中出现的问题是通过Keywords搜出来的东西塞不进结果集?所以这里用写SQL语句的方式进行了搜索。
贼长,脑仁儿疼,但姑且是解决问题了。希望有比这好的解决方法(大概是有的,但是不想改模型orz)
以下内容是1行语句。
@results =
@results.where([
'knowledges.title like ? OR
knowledges.id IN (
SELECT keyword_knowledge_associations.knowledge_id
FROM keyword_knowledge_associations
WHERE(keyword_id IN (
SELECT keywords.id
FROM keywords
WHERE keywords.name = ?))
OR
knowledges.id IN
(SELECT course_knowledge_associations.knowledge_id
FROM course_knowledge_associations
WHERE(course_id IN
(SELECT courses.id FROM courses
WHERE courses.course_name = ?
))))','%'+keys+'%',keys,keys])