我的Disclosure
模型有accession_number
列。该列具有唯一约束。
当有一系列accession_numbers时,我怎么知道是否还有尚未使用的accession_numbers。
我目前检查每个数字是否存在,但我认为这种行为有更好的方法。
accession_numbers.select{|number| !Disclosure.where(accession_number: number).exists?}
答案 0 :(得分:0)
您可以查询阵列中具有accession_number的所有披露信息。
existing = Disclosure.where(accession_number: accession_numbers).pluck(:accession_number)
然后只需从数组中删除现有的
accession_numbers - existing
答案 1 :(得分:0)
由于您已在数据库级别拥有唯一约束,
exiting_accessions = Disclosure.pluck(:accession_number)
会产生一系列现有的访问权限。
accession_array - existing_accessions
会产生一系列未使用的种质。