4
我花了相当长一段时间试图让client_side_validations宝石的工作,但没有文字显示出来,并在形式后没有脚本标签被注入。我已经用Rails生成的标准表单和Devise表单试过了。我已经确保包含rails.validations.js文件并取消注册gem提供的初始化程序中的块。Client_side_validations宝石在轨工作不3.2.13
这里是我的代码:
client_side_validations.rb
ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
unless html_tag =~ /^<label/
%{<div class="field_with_errors">#{html_tag}<label for="#{instance.send(:tag_id)}" class="message">#{instance.error_message.first}</label></div>}.html_safe
else
%{<div class="field_with_errors">#{html_tag}</div>}.html_safe
end
end
JS包括
<%= javascript_include_tag "/javascript/rails.validations.js" %>
的Gemfile
gem 'client_side_validations'
标准轨形成
<%= form_for(@report, :validate => true) do |f| %>
<%= f.hidden_field :url, :value => "http://#{request.host}:#{request.port}#{request.fullpath}" %>
<%= f.label :elements %>
<%= f.text_field :elements %>
<%= f.label :comments %>
<%= f.text_area :comments %>
<%= f.submit "Send", :class => 'btn' %>
设计形式
<%= form_for(resource, :validate => true, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<%= f.label "First name" %>
<%= f.text_field :first_name %>
<%= f.label "Last name" %>
<%= f.text_field :last_name %>
<%= f.label :email %>
<%= f.email_field :email %>
<%= f.label :password %>
<%= f.password_field :password %>
<%= 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 %>
我是从字面上无所适从,以什么我可以做的旁边。我需要引用不同版本的gem吗?我如何检查宝石是否实际运行?
我目前使用的Rails 3.2.13
我没有收到在JavaScript控制台中的任何错误。
如果您想查看相关文件,请告诉我。
任何指针将非常感激!
非常感谢!原来我需要重新启动rails服务器。你是个明星! – JellyFishBoy 2013-04-10 23:08:55
我现在正在得到客户端验证的问题,只有当我用设计提交表单时才触发。当我通过他们时,他们不会触发,任何想法为什么? – JellyFishBoy 2013-04-11 20:59:57
对不起,我不使用Devise,所以我不确定你遇到了什么 – bcardarella 2013-04-12 04:53:07