投擲警告我使用client_side_validations寶石除了當火狐/即拋出來執行在軌形式驗證3.軌道3:client_side_validations上運行的唯一驗證
一切正常JavaScript警告 時唯一驗證AJAX運行和返回404錯誤消息。
作者說404意味着記錄沒有找到,因此獨特;
有什麼辦法可以解決這個問題。
我已經開了這家:https://github.com/bcardarella/client_side_validations/issues/297
投擲警告我使用client_side_validations寶石除了當火狐/即拋出來執行在軌形式驗證3.軌道3:client_side_validations上運行的唯一驗證
一切正常JavaScript警告 時唯一驗證AJAX運行和返回404錯誤消息。
作者說404意味着記錄沒有找到,因此獨特;
有什麼辦法可以解決這個問題。
我已經開了這家:https://github.com/bcardarella/client_side_validations/issues/297
您所看到的錯誤是因爲遠程驗證無法找到服務器上的資源。這是預期的,如果沒有找到該資源,則該資源是唯一的。
雖然我認爲這是返回語義上正確的狀態代碼,我不認爲瀏覽器應該顯示錯誤,我顯然會失去。因此,在下一個版本的ClientSideValidations中,我將更改此行爲以返回2xx範圍內的狀態代碼。對困惑感到抱歉。
我有同樣的問題,導致一些問題,因爲我正在處理的應用程序有全球吐司消息,如阿賈克斯調用404錯誤。
既然如此,我做了這個補丁。你當然可以做更多。例如,改變JavaScript的工作方式是一個好主意,但是這個猴子補丁是我可以對代碼做出的最小改變,並且仍然可以獲得所需的功能。請注意,使用HTTP 204是因爲ClientSideValidations gem預計所有HTTP 200(非常特別的200)響應都是驗證失敗響應,因此,如果不更改javascript,則無法重用。
應用程序/配置/初始化/ client_side_validations.rb
ClientSideValidations::Config.disabled_validators = []
# Monkey Patch
# Guranatee uniqueness middleware is fully loaded
::ClientSideValidations::Middleware::Uniqueness
module ClientSideValidations
module Middleware
class Uniqueness
def response
begin
if unique?
self.status = 204 # changed from 404
self.body = '' # changed from true
else
self.status = 200
self.body = 'false'
end
rescue NotValidatable
self.status = 500
self.body = ''
end
super
end
end
end
end
我認爲這將是巨大的......請馬上滾出來.. – dbKooper 2012-04-07 09:37:50
在此修復程序的任何時間表?我也看到了鉻控制檯中的錯誤。 – plainjimbo 2012-04-23 21:37:56
「soonish」?我現在很淹沒。我知道這是一個蹩腳的答案,對不起:( – bcardarella 2012-04-24 17:25:51