我正在执行标记系统,并且正在查询具有范围的标记对象。将类方法范围界定为current_user
例如,我想查找具有特定标记的所有用户的项目。用类方法我现在可以找到所有对象:
def self.tagged_with(name)
Tag.find_by_name(name).items
end
但是,这有一个问题。如果我要这样做:current_user.items.tagged_with(name)
这个现有的方法不会返回所有的项目,而不仅仅是current_user拥有的项目吗?我想这是一个简单的查询问题,但我无法弄清楚如何将类方法更改为集合上调用的某个方法。我尝试了相反的方式,通过标签获取集合,例如... tag.items.where(:user_id => current_user.id)
,但在这种情况下,这是一种多对多的关系,我一直无法掌握这一点。
限制这样的查询的正确方法是什么?
你能告诉你们的关系了?我是否有权假定你正在使用'acts_as_taggable'? – mathieugagne 2013-02-19 22:38:10