Activerecord 连接表上的Rails条件查询
我有一个连接表,将项目连接到具有多对多关系的标记。我正在尝试对所有项目进行分页查看,如果进行搜索,将包括名称或标记名称匹配的所有项目 当我这样做时:Activerecord 连接表上的Rails条件查询,activerecord,ruby-on-rails-3.2,Activerecord,Ruby On Rails 3.2,我有一个连接表,将项目连接到具有多对多关系的标记。我正在尝试对所有项目进行分页查看,如果进行搜索,将包括名称或标记名称匹配的所有项目 当我这样做时: search = "one" Item.all(:conditions=>["items.name LIKE ?", "%#{search}%"]); 我得到了一个包含单词“一”的结果项 那么当我这样做的时候: search = "one" Item.all(:joins=>[:tags], :cond
search = "one"
Item.all(:conditions=>["items.name LIKE ?", "%#{search}%"]);
我得到了一个包含单词“一”的结果项
那么当我这样做的时候:
search = "one"
Item.all(:joins=>[:tags], :conditions=>["items.name LIKE ?", "%#{search}%"]);
我有一套空的
为什么活动记录给我一个空集,而不是仍然给我一个匹配条件的结果?我怎样才能得到我想要的结果呢?我想出来了。当我的查询需要一个
外部连接时,:joins=>[:tags]
默认做一个内部连接
。解决我问题的办法是
search = "one"
Item.all(
:joins=>['LEFT OUTER JOIN "tags_items" ON "tags_items"."webservice_id" = "webservices"."id" LEFT OUTER JOIN "tags" ON "tags"."id" = "tags_items"."tag_id"'],
:conditions=>["items.name LIKE ?", "%#{search}%"]
)