我的rails应用程序拥有许多用户的机构级帐户。
每个机构都有很多项目。
项目acts_as_taggable,机构中的用户可以为其机构的项目添加标签。
我想查询属于特定机构的项目的所有标签列表。
例如,像Project.where(institution_id: 1).tags
(不存在)之类的东西
我是否需要将项目的机构设置为标签的所有者以便于此操作,然后由所有者进行查询?
class Institution < ActiveRecord::Base
acts_as_tagger
end
class Project < ActiveRecord::Base
acts_as_taggable
end
然后设置标签时:
@current_user.institution.tag(@some_project, with: 'tag1, tag2')
...并获取标签:
@current_user.institution.owned_tags
或者,是否有一种方法不需要设置所有权?
答案 0 :(得分:1)
当然,做一些事情:
ActsAsTaggableOn::Tag.
joins(:taggings).
where(taggings: {taggable: current_institution.projects})
该语法可能需要一些调整(尽管它适用于我的数据)。
我假设您有办法让属于某个机构的项目 - 我曾用current_institution.projects
向我挥手致意。替换为您自己的代码。
无论如何,我相信应该让你朝着正确的方向前进。