0

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 の UserGroup が見つかりません [WHERE "user_groups"."deleted_at" IS NULL]

コマンドラインに「with deleted」がなかったかのように。

Railsコンソールで同じコマンドを入力しようとしましたが、うまくいきました。つまり、 ug = UserGroup.with_deleted.find(71) を実行すると、問題なく動作し、削除されたユーザーが見つかります。

それで、paranoia の 'with_deleted' コマンドが Rails タスクで機能していないようです...何か不足していますか?

4

0 に答える 0