检查孩子有价值的记录是否存在

时间:2016-12-12 10:56:00

标签: ruby-on-rails activerecord ruby-on-rails-5 exists

我正在构建一个界面,人们可以在其中为各种网站的内容提交标记,以便每个Submission都有参数domainhas_one :tag

诀窍是我想在保存之前检查先前是否已为该域提交过该标记。

类似的东西:

Submission.where(domain: submission_params[:domain], tag.tag_text: submission_params[:tag][:tag_text]).exists?

1 个答案:

答案 0 :(得分:2)

为了能够查询关联的表,您应该加入它。在你的情况下joins就是你要找的东西( INNER JOIN ):

Submission.joins(:tag)
          .where(
            submissions: { domain: submission_params[:domain] },
            tags:        { tag_text: submission_params[:tag_attributes][:tag_text] }
          ).exists?