Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 设计+;使用Rails 3.2.1进行客户端验证_Javascript_Ruby On Rails_Devise_Form For_Client Side Validation - Fatal编程技术网

Javascript 设计+;使用Rails 3.2.1进行客户端验证

Javascript 设计+;使用Rails 3.2.1进行客户端验证,javascript,ruby-on-rails,devise,form-for,client-side-validation,Javascript,Ruby On Rails,Devise,Form For,Client Side Validation,我最近发布了一个问题,询问如何让客户端验证gem与designe一起工作。我收到gem作者的及时回复,尝试不同版本的gem,这暂时解决了我的问题 但是,我现在只能触发电子邮件地址字段。我可以从表单后注入的javascript中看出,它正在引用表单中的其他字段,但它似乎不会触发任何错误消息。这是我的密码: Gemfile gem 'client_side_validations', :github => 'bcardarella/client_side_validations', :bran

我最近发布了一个问题,询问如何让客户端验证gem与designe一起工作。我收到gem作者的及时回复,尝试不同版本的gem,这暂时解决了我的问题

但是,我现在只能触发电子邮件地址字段。我可以从表单后注入的javascript中看出,它正在引用表单中的其他字段,但它似乎不会触发任何错误消息。这是我的密码:

Gemfile

gem 'client_side_validations', :github => 'bcardarella/client_side_validations', :branch => '3-2-stable'
User.rb

  validates :email, :presence => { :message =>  "An email address is required."}, :uniqueness => { :message => "Email address has already been taken."}
  validates :first_name, :presence => { :message => "A first name is required."}
  validates :last_name, :presence => { :message => "A last name is required."}
  validates :privacy_policy, :acceptance => { :message => "Please accept the Privacy policy."}
表格

<h1>Sign up</h1>

<%= link_to(user_omniauth_authorize_path(:facebook), :class => "btn btn-primary btn-fb-large btn-large") do %>
    <div class="icon"><span></span><i class="icon-facebook"></i></div><div class="divider"></div>Sign in with Facebook
<% end %>

<%= form_for(resource, :validate => true, :as => resource_name, :url => registration_path(resource_name)) do |f| %>

  <%= f.label :first_name %>
  <%= f.text_field :first_name, :validate => true %>

  <%= f.label :last_name %>
  <%= f.text_field :last_name, :validate => true %>

  <%= f.label :email %>
  <%= f.email_field :email %>

  <%= f.label :password %>
  <%= f.password_field :password, :validate => true %>

  <%= f.label :password_confirmation %>
  <%= f.password_field :password_confirmation %>

  <%= f.label :privacy_policy, :class => 'checkbox' do %>
  <%= f.check_box :privacy_policy %>I agree to the <%= link_to "Privacy policy", privacy_path %><% end %>

  <%= f.submit "Sign up", :class => 'btn' %>
<% end %>
注册
“btn btn主btn fb大btn大”)do%>
使用Facebook登录
true,:as=>resource_name,:url=>registration_path(resource_name))do | f |%>
正确%>
正确%>
正确%>
“复选框”do%>
我同意这个建议
'btn'>
注入脚本

<script>//<![CDATA[
if(window.ClientSideValidations===undefined)window.ClientSideValidations={};window.ClientSideValidations.disabled_validators=[];window.ClientSideValidations.number_format={"separator":".","delimiter":","};if(window.ClientSideValidations.patterns===undefined)window.ClientSideValidations.patterns = {};window.ClientSideValidations.patterns.numericality=/^(-|\+)?(?:\d+|\d{1,3}(?:\,\d{3})+)(?:\.\d*)?$/;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\" /><label for=\"\" class=\"message\"></label></div>","label_tag":"<div class=\"field_with_errors\"><label id=\"label_tag\" /></div>","validators":{"user[first_name]":{"presence":[{"message":"A first name is required."}]},"user[last_name]":{"presence":[{"message":"A last name is required."}]},"user[email]":{"uniqueness":[{"message":"has already been taken","case_sensitive":true,"allow_blank":true},{"message":"Email address has already been taken.","case_sensitive":true}],"format":[{"message":"is invalid","with":/^[^@\s]+@([^@\s]+\.)+[^@\s]+$/,"allow_blank":true},{"message":"is invalid","with":/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i}],"presence":[{"message":"An email address is required."}]},"user[password]":{"presence":[{"message":"can't be blank"}],"confirmation":[{"message":"doesn't match confirmation"}],"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}]},"user[privacy_policy]":{"acceptance":[{"message":"Please accept the Privacy policy.","accept":"1"}]}}};
//]]></script>
//
我尝试了在谷歌上能找到的每一个搜索结果,并探索了每一条与Desive相关的途径,但运气不佳

我在浏览器控制台中没有收到JS错误


任何帮助都将不胜感激。

我在开发一个应用程序时也遇到了类似的错误。
我认为您应该将rails版本升级到3.2.6。它将解决您的问题

您是否尝试在
config/initalizers/develope.rb中取消注释代码块
?感谢回复@david。哪些部分?我需要一些用于mailer和Facebook身份验证配置。客户端验证文档说明如下:初始值设定项包括注释掉的ActionView::Base.field\u error\u proc。取消对此的注释以使错误消息与输入字段内联。我建议您不要使用类似于错误消息的解决方案。客户端验证永远不会支持呈现这种类型的错误呈现。如果您想保持客户端呈现的验证错误消息与服务器端呈现的验证错误消息之间的一致性,请使用config/initializers/client_-side_-validations.rb中的内容。我想您可能指的是
config/initializers/client_-side_-validations.rb
,在这种情况下,我已经取消了对所需代码的注释。验证正在工作,但仅在电子邮件字段上,没有其他内容。感谢您的回复。我将试一试,让你知道结果。