2017-01-26 14 views
1

を確認し、私は、データベースからユーザーを削除するには、このコードを使用します。私は、ユーザーが正常に削除されたことを確認するにはどうすればよいは、コード実行

task :delete_username, [:user_name] => :environment do |environment, args| 

    value = args[:user_name].to_s 

    puts "Deleting #{value}" 

     MerchantUser.where(:login => value).delete 

    end 

?たとえば、このコードでtry-catchを訴える適切な方法はありますか?ここで

+0

を使用する必要があります。 – ItsOdi1

+0

残念ながら私はコードのこの部分にアクセスすることはできません。 –

+0

データベースメイトから結果を取得するには、selectを実行する必要があります。 – ItsOdi1

答えて

1

destroyed?を使用して、それを行うための一つの方法です:

task :delete_username, [:user_name] => :environment do |environment, args| 
    value = args[:user_name].to_s 
    user = MerchantUser.where(:login => value).first 

    if user 
    puts "Deleting user \"#{value}\"" 
    user.destroy 
    if user.destroyed? 
     puts " User \"#{value}\" successfully deleted!" 
    else 
     raise "Problem while deleting user \"#{value}\"" 
    end 
    else 
    puts "No user with login \"#{value}\" found" 
    end 
end 

あなたはまたdestroy!を呼び出し、レコードが削除できない場合、Railsは例外を発生させてみましょうことができます。

MerchantUser.where(:login => value)は、またはdestroyに応答しないActiveRecord::Relationであることに注意してください。

あなたはデータベースはあなたが言ったようにそれをキャッチ/試すことができ、エラーを返した場合、それを削除した後に、このユーザーのために選択させることができMerchantUser.where(:login => value).firstまたはMerchantUser.find_by_login(value)