【问题标题】:Client_side_validations gem not working in rails 3.2.13Client_side_validations gem 在 Rails 3.2.13 中不起作用
【发布时间】:2013-04-03 00:00:39
【问题描述】:

我花了很长时间试图让 client_side_validations gem 工作,但没有显示任何文本并且在表单之后没有注入脚本标签。我已经使用 Rails 生成的标准表单和 Devise 表单进行了尝试。我确保包含 rails.validations.js 文件并取消注释 gem 提供的初始化程序中的块。

这是我的代码:

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" %>

宝石文件

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 吗?如何检查 gem 是否实际运行?

我目前正在使用 Rails 3.2.13

我在 javascript 控制台中没有收到任何错误。

如果您想查看相关文件,请告诉我。

任何指点将不胜感激!

【问题讨论】:

    标签: jquery ruby-on-rails validation devise client-side-validation


    【解决方案1】:

    请在您的 Gemfile 中尝试以下操作:

    gem 'client_side_validations`, :github => 'bcardarella/client_side_validations', :branch => '3-2-stable'
    

    【讨论】:

    • 非常感谢!原来我也需要重新启动 rails 服务器。你是明星!
    • 我现在遇到的问题是客户端验证仅在我使用设计提交表单时触发。当我浏览它们时它们不会触发,知道为什么吗?
    • 对不起,我没有使用 Devise,所以我不确定你遇到了什么
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-28
    • 1970-01-01
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    • 2013-12-26
    相关资源
    最近更新 更多