
[英]Is there a query to join a many-to-many linked table into a single record?
[英]Rails many-to-many associations on single-table-inheritance child models with join tables
我有一个通过 STI 具有多个不同类别/类型的Keyword
类,如下所述
class Keyword < ApplicationRecord
end
class Keyword1 < Keyword
end
class Keyword2 < Keyword
end
class Keyword3 < Keyword
end
然后我有一个User
类。 每个User
应该有许多Keyword1s
, Keyword2s
和Keyword3s
。 如何设置这种多对多关系,以便我可以查询诸如user.keyword1s
而不是user.keyword.where(type: "keyword1")
之类的东西? 是否有可能拥有一个UserKeyword
连接表,同时仍然能够轻松地选择某些类型(比如在父Keyword
类上定义范围,以便我可以查询user.keywords.keyword1s
或其他内容)?
在这里使用的最佳设计是什么? 提前致谢。
您可以直接在User
类中定义的has_many
关系中执行此操作
has_many :keyword1, class_name: 'Keyword1'
has_many :keyword2, class_name: 'Keyword2'
您还可以将范围用于更多花哨的东西
has_many :keyword1 -> { where(type: 'keyword1') }, class_name: 'Keyword'
has_many :keyword2 -> { where(type: 'keyword2') }, class_name: 'Keyword'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.