Rails では、一度に 25000 レコードをデータベースに追加する必要があります。私もそれらを検証する必要があります。
ここに私が今持っているものがあります:
# controller create action
def create
emails = params[:emails][:list].split("\r\n")
@created_count = 0
@rejected_count = 0
inserts = []
emails.each do |email|
@email = Email.new(:email => email)
if @email.valid?
@created_count += 1
inserts.push "('#{email}', '#{Date.today}', '#{Date.today}')"
else
@rejected_count += 1
end
end
return if emails.empty?
sql = "INSERT INTO `emails` (`email`, `updated_at`, `created_at`) VALUES #{inserts.join(", ")}"
Email.connection.execute(sql) unless inserts.empty?
redirect_to new_email_path, :notice => "Successfuly created #{@created_count} emails, rejected #{@rejected_count}"
end
今は非常に遅いです。タイムアウトが原因で、そのような数のレコードを追加する方法はありません。
何か案は?私はmysqlを使用しています。