我有以下任务要在 Rais 上运行:
require 'net/http'
namespace :seed do
task :set_gid_on_histories => :environment do
History.all.each do |hist|
if hist.channel != "REMOTE"
if hist.guest
guest = Guest.find(hist.user_group_id)
hist.update_attributes(:group_id => guest.group_id)
else
ug = UserGroup.with_deleted.find(hist.user_group_id)
hist.update_attributes(:group_id => ug.group_id)
end
end
end
end
end
问题发生在队列中
ug = UserGroup.with_deleted.find(hist.user_group_id)
发生的事情是它在抛出
ActiveRecord::RecordNotFound: 找不到 'id'=71 的用户组 [WHERE "user_groups"."deleted_at" IS NULL]
就像命令行上没有“删除”一样。
我尝试在 Rails 控制台上键入相同的命令并且它工作,即当我运行 ug = UserGroup.with_deleted.find(71) 时它工作得很好并找到已删除的用户。
所以似乎偏执狂的'with_deleted'命令不适用于rails任务......我错过了什么吗?