2014-01-10 163 views
14

由於將我的網站升級到Rails 4,客戶端驗證gem已停止爲我工作。我查看了各種替代方法,例如jquery-validation-rails和judgement,其中涉及編寫相當多的javascript,特別是對於一個非常大的站點。而在jquery-validation-rails的情況下,重新執行所有驗證規則客戶端。考慮到Rails是如此流行的框架,讓我感到驚訝的是沒有'簡單'選項。是否有任何其他人知道的寶石,它既有驗證又有客戶端驗證的寶石?Rails 4客戶端驗證

或者是使用ModelName.validators方法與某些ajax混合並通過jquery-validation-rails gem進行驗證的最佳選擇?

+1

能否請您發佈該解決方案的工作最適合你? – ksiomelo

回答

13

來自Google。

http://rubygems.org/gems/rails4_client_side_validations

https://github.com/amatsuda/html5_validators

而且這傢伙似乎已經得到了您在使用使用4-0-β分公司工作相同的寶石。

Client Side Validations and Rails4

如果4-0-β分支爲你工作,爲幫助維持寶石,以保持它活着。

要在您的Gemfile一定混帳回購協議版本:

gem 'client-side-validations', :git => 'https://github.com/bcardarella/client_side_validations/tree/4-0-beta' 
10

雖然客戶端驗證將在簡單的情況下工作,他們會需要變通的大量更復雜的情況下工作(例如 - 有條件的驗證)。 我建議使用Judge來代替,這會給你更多的控制權。

+0

不錯的鏈接,非常感謝。它也與'simple_form'兼容。 :D – Vadorequest

+0

@Vadorequest client_side_validations對條件驗證不需要大量的解決方法。看到我的解決方案在這裏:http://stackoverflow.com/questions/22906257/client-side-validation-is-not-working-while-applying-conditional-validation-in-r/22943098#22943098你能提供更多的細節法官如何處理條件驗證?我查看了文檔,並沒有提及它,所以我不知道在條件驗證方面有什麼優勢。 –

+0

在客戶端確定驗證條件時。正如我之前所說的 - 對於簡單的情況,client_side_validations也許很好,但對於更復雜的情況,當客戶端有很多業務邏輯時(並且世界正在朝這個方向發展),那麼處理起來就很難了。 – Roman

2

我能夠使用當前非常活躍的原始client_side_vlaidations的分支。我正在使用最新版本的simple_form,rails 4.1.8和這個client_side_validations。簡單的基本配置設置。

0

我知道這個問題已經很久了,但是好的舊的要求如何:「要求」?

例如,在圖:

<%= f.text_area :body, placeholder: "Write your review here...", class: "form-control", rows: "5", required: "required" %> 
+0

請注意,HTML5要求在Safari中無法使用。 – user2031423

+0

omfg ...你說得對。這是爲什麼? – Boomerange