我的模特关系如下:
Firm:
has_many :taggings, as: taggable
has_many :articles, through: taggings
Person:
belongs_to :firm
has_many :taggings, as: taggable
has_many :articles, through: taggings
Tagging:
belongs_to :article
belongs_to :taggable, polymorphic: true
Article:
has_many :taggings
has_many :persons, through: :taggings, source: :taggable, source_type: 'Person'
has_many :firms, through: :taggings, source: :taggable, source_type: 'Firm'
一个人属于公司。公司或个人充当文章的标签,每篇文章都有许多公司,每个公司/人都有很多文章。 基本上一切正常,但我有一个问题从标记表访问一个值。 Tagging表有一个Field用户,用于存储添加了这个标记的人。
我当然可以通过
获得每篇文章/公司的价值Tagging.find_by(article_id: article.id, tagging_id: firm.id, tagging_type: 'Firm')
然后创建一个新数组,以便在我的视图中显示数据,但这看起来很难看。有没有人知道用“访问表”来访问“直通表”中的数据?