Rails 4 client side validation

2019-02-08 08:16发布

问题:

Since upgrading my site to Rails 4, the client-side-validations gem has stopped working for me. I have had a look at the various alternatives such as jquery-validation-rails and judge, which involve writing quite a bit of javascript, especially for a site so large. And in the case of jquery-validation-rails, re-doing all the validation rules client side. Considering Rails is such a popular framework, it surprises me that there is no 'easy' option. Is there any gem which anyone else is aware of, which does validation as well as the client-side-validation gem?

Or is the best alternative to use the ModelName.validators method mixed with some ajax, and do the validation through the jquery-validation-rails gem?

回答1:

From the Google.

http://rubygems.org/gems/rails4_client_side_validations

https://github.com/amatsuda/html5_validators

Also this guy seemed to have gotten the same gem you are using to work by using the 4-0-beta branch.

Client Side Validations and Rails4

If the 4-0-beta branch works for you, consider helping to maintain the gem to keep it alive.

To use a certain git repo version in your Gemfile:

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


回答2:

While the client side validations will work for the simple cases, they'll require an enormous amount of workarounds to work with more complicated scenarios (for instance - conditional validations). I would recommend using Judge instead, which give you more control.



回答3:

I was able to use a fork of the original client_side_vlaidations that is very active at the moment. I am using the latest version of simple_form, rails 4.1.8, and this client_side_validations. Simple setup with basic config.



回答4:

I know the question is old, but how about good old require: "require"?

For example in view:

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


回答5:

If you are using Bootstrap Form for Rails, you can give bootstrap_validator_rails a try.

https://github.com/huynhquancam/bootstrap_validator_rails