我有Disclosure
模型,它有accession_number
列。该列有独特的约束。如何通过轨道中的uniq数组检查存在
而且当有一个accession_numbers数组时,我怎么知道是否有accession_numbers还没有使用。
我目前检查存在的每个数字,但我认为有这种行为的更好方法。
accession_numbers.select{|number| !Disclosure.where(accession_number: number).exists?}
我有Disclosure
模型,它有accession_number
列。该列有独特的约束。如何通过轨道中的uniq数组检查存在
而且当有一个accession_numbers数组时,我怎么知道是否有accession_numbers还没有使用。
我目前检查存在的每个数字,但我认为有这种行为的更好方法。
accession_numbers.select{|number| !Disclosure.where(accession_number: number).exists?}
您可以查询里面有你的阵列中的所有accession_number披露。
existing = Disclosure.where(accession_number: accession_numbers).pluck(:accession_number)
然后,只需从你的阵列
accession_numbers - existing
删除现有既然你已经在DB水平的唯一约束,
exiting_accessions = Disclosure.pluck(:accession_number)
导致现有accesssions的数组。
accession_array - existing_accessions
导致未使用的种质数组。