我有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
導致未使用的種質數組。