我在這里使用包含 :email_address 列的User模型運行 Rails
我有一個陣列 - emails_to_check[email1,email2,email3]我想檢查它們是否存在于用戶資料庫中。
我只想回傳資料庫中確實存在的值
uj5u.com熱心網友回復:
這是一個簡單的單線給你。可能有更高效的方法,但這可能是最直接和最慣用的 Rails。
emails_to_check = ['email1', 'email2', 'email3']
User.where(email_address: emails_to_check).pluck(:email_address)
這是生成的 SQL 查詢:
SELECT `users`.`email_address` FROM `users` WHERE `users`.`email_address` IN ('email1', 'email2', 'email3');
uj5u.com熱心網友回復:
所以我使用 rake 任務解決了這個問題
task :find_users_in_array,[:emails_to_find] => :environment do |task, args|
emails = args[:emails_to_find].split
emails.each do |email|
if User.find_by(email:email)
puts "#{email}"
end
end
end
我可以使用rake:find_users_in_array[email1 email2 email3]傳入一個串列
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/489670.html
