检查 child 有值的记录是否存在
Check if record exists where child has value
我正在构建一个界面,人们可以在其中为各种网站的内容提交标签,因此每个 Submission
都有一个参数 domain
和 has_one :tag
。
诀窍是我想在保存之前检查该标签之前是否已为该域提交。
类似于:
Submission.where(domain: submission_params[:domain], tag.tag_text: submission_params[:tag][:tag_text]).exists?
为了能够查询关联的 table,您应该加入它。在您的情况下,joins
就是您要查找的内容 (INNER JOIN):
Submission.joins(:tag)
.where(
submissions: { domain: submission_params[:domain] },
tags: { tag_text: submission_params[:tag_attributes][:tag_text] }
).exists?
我正在构建一个界面,人们可以在其中为各种网站的内容提交标签,因此每个 Submission
都有一个参数 domain
和 has_one :tag
。
诀窍是我想在保存之前检查该标签之前是否已为该域提交。
类似于:
Submission.where(domain: submission_params[:domain], tag.tag_text: submission_params[:tag][:tag_text]).exists?
为了能够查询关联的 table,您应该加入它。在您的情况下,joins
就是您要查找的内容 (INNER JOIN):
Submission.joins(:tag)
.where(
submissions: { domain: submission_params[:domain] },
tags: { tag_text: submission_params[:tag_attributes][:tag_text] }
).exists?