在这个rails应用程序中,我有一个控制器调用的方法,它接受站点和过滤器数组的活动记录关系,该方法返回关系中具有数组中所有过滤器的所有站点。这是方法:
def filter_sites(sites, filters)
if filters.count > 0
filterable = sites.tag_join
filters.each { |f| sites = sites & filterable.with_tag(f) }
end
return sites
end
以下是使用的范围:
def self.tag_join
joins(:tags).distinct
end
def self.with_tag(tag_id)
where('sites_tags.tag_id = ?',tag_id)
end
这是正常运行但问题是它返回一个数组。我的问题是;是否有更有效的方法或编写此方法并返回活动记录关系?稍后在代码中,需要进一步查询链接。
非常感谢任何帮助。