Devise と ClientSideValidations gem を使用するアプリがあります。
以下のフォームでは、デバイスで動作するクライアント側の検証があります。実際にフォームを送信することは不可能になったので、機能していると思います。私の問題は、「空白にすることはできません」などのテキストがテキスト フィールド タグの横に表示されないことです。私が間違っていることは何か分かりますか?
%h3 Sign up
%br
= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :validate => true) do |f|
%h4
= devise_error_messages!
%div
= f.label :name
= f.text_field :name, :validate => true
%div
= f.label :email
= f.email_field :email, :validate => { :presence => :true }
%div
= f.label :password
= f.password_field :password, :validate => { :presence => :true, :length => true }
%div
= f.label :password_confirmation
= f.password_field :password_confirmation, :validate => { :presence => true }
%div
= f.submit "Sign up", id: 'button'
= render "devise/shared/links"
ソースを表示すると、js が表示されます。
<script>//<![CDATA[
if(window.ClientSideValidations==undefined)window.ClientSideValidations={};if(window.ClientSideValidations.forms==undefined)window.ClientSideValidations.forms={};window.ClientSideValidations.forms['new_user'] = {"type":"ActionView::Helpers::FormBuilder","input_tag":"<div class=\"field_with_errors\"><span id=\"input_tag\" /></div>","label_tag":"<div class=\"field_with_errors\"><label id=\"label_tag\" /></div>","validators":{"user[name]":{"presence":[{"message":"can't be blank"}]},"user[email]":{"presence":[{"message":"can't be blank"}]},"user[password]":{"presence":[{"message":"can't be blank"}],"length":[{"messages":{"minimum":"is too short (minimum is 6 characters)","maximum":"is too long (maximum is 128 characters)"},"allow_blank":true,"minimum":6,"maximum":128}]}}};
//]]></script>
だから私はそれを知っていて、それがその仕事をしていると信じていますが、何らかの理由で、フィールドを空白のままにしたときに期待するエラーメッセージが表示されません.