0
我通過控制器試圖delete
從數據庫中的記錄如下:HTTParty壓倒一切的天然紅寶石刪除軌道
Model.where("property_1 = ? OR property_2 = ?", value_1, value_2).first.destroy
而且我有一個Rspec的測試爲它如下:
it "should do stuff" do
expect{ post :create, @model_instance }.to change{ Model.count }.by -1
end
而且通過。
但是,當我改變我的代碼來代替destroy
使用delete
如下:
Model.where("property_1 = ? OR property_2 = ?", value_1, value_2).first.delete
測試失敗,出現以下錯誤:
ArgumentError: bad argument (expected URI object or URI string)
在仔細檢查,原來我在我的模型類(include HTTParty
)中包含了HTTParty
,它有一個刪除方法,即覆蓋原生的:
def delete
self.class.delete(id) if persisted?
@destroyed = true
freeze
end
所以,我的問題是:是否使用HTTParty
意味着我將不能再使用原生delete
方法?知道delete
將刪除記錄而不會觸發任何回調,因爲destroy
會。 (我不會想用destroy
,然後手動skip_callbacks
時delete
能爲我做到這一點)提前
感謝響應
是, 「應該做的東西」 測試是否正確?它不應該開始'expect {delete:delete,@model_instance}' – ReggieB
@ReggieB感謝您的觀察,並且是的它是正確的。我正在執行'before_action'中的另一個資源的'create'方法的刪除。 –