[英]How to run validations in Rails rake task
我有一個從 CSV 文件導入數據的 rake 任務,它運行良好。 現在的問題是我想向我的 mysql 表中已經存在的數據添加更多數據。 現在這個 CSV 文件包含一些已經導入到 mysql 中的數據。 如何跳過 CSV 和 mysql 中的數據? 我想避免在 mysql 表中重復。 這是我的工作耙任務。
namespace :populate_honda do
desc "TODO"
task pop_honda: :environment do
vehicleid = Vehicle.where("name = 'Honda'").first.id
Model.where(:vehicle_id => vehicleid).destroy_all
honda_file = File.read(Rails.root.join('lib', 'tasks', 'honda.csv'))
honda_list = CSV.parse(honda_file, :headers => true)
honda_list.each do |m|
t = Model.new
t.name = m['model_name'].titleize
t.vehicle_id = vehicleid
t.createdate = Date.today
t.user_id = 99
t.save
end
puts honda_list.length.to_s + " Honda models successfully imported"
end
end
我嘗試在namespace :populate_honda do
下方添加validates_uniqueness_of :name
namespace :populate_honda do
但它給了我一個無方法錯誤。 我怎樣才能實現我的預期目標?
您應該將validates_uniqueness_of :name
放在Model
類文件中,因為驗證屬於ActiveRecord
類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.