Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.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
Ruby on rails 客户端验证不';t工作-验证哈希始终为空:(_Ruby On Rails_Client Side Validation - Fatal编程技术网

Ruby on rails 客户端验证不';t工作-验证哈希始终为空:(

Ruby on rails 客户端验证不';t工作-验证哈希始终为空:(,ruby-on-rails,client-side-validation,Ruby On Rails,Client Side Validation,我真的不知道我做错了什么。我在宝石的3-1稳定分支上。不知道这是一个错误还是我的愚蠢。 客户端验证无法识别我的验证 这是我的密码: # model models/fan.rb class Fan < ActiveRecord::Base validates_presence_of :email, :name validates_uniqueness_of :email end # initializer initializers/client_side_validations.r

我真的不知道我做错了什么。我在宝石的3-1稳定分支上。不知道这是一个错误还是我的愚蠢。 客户端验证无法识别我的验证

这是我的密码:

# model models/fan.rb
class Fan < ActiveRecord::Base
  validates_presence_of :email, :name
  validates_uniqueness_of :email
end

# initializer initializers/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

# view fans/new.haml
= form_for @fan, validate: true do |f|
    = f.text_field 'name'
    = f.email_field 'email'
    = f.submit

# application.js
//= require jquery
//= require rails.validations

# gemfile
gem 'aws-sdk'
gem 'aws-s3', :require => 'aws/s3'
gem 'client_side_validations', git: 'https://github.com/bcardarella/client_side_validations.git', branch: '3-1-stable'
gem 'coffee-filter'
gem 'devise'
gem 'draper'
gem 'haml'
gem 'haml-rails'
gem 'heroku'
gem 'jquery-rails'
gem 'paperclip', '~> 3.0'
gem 'paperclip-meta', :git => "git://github.com/dce/paperclip-meta.git"
gem 'rails', '~> 3.2.3'
gem 'thin'

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'coffee-rails', '~> 3.2.2'
  gem 'sass-rails',   '~> 3.2.5'
  gem 'uglifier'
end

group :production do
  gem 'pg'
end

group :development, :test do
  gem 'awesome_print'
  gem 'powder'
  gem 'sqlite3'
  gem 'sprite-factory'
end
#模型模型/fan.rb
类Fan3.0”
gem'回形针元',:git=>“git://github.com/dce/paperclip-meta.git"
gem'rails',“~>3.2.3”
宝石“薄”
#仅用于资产的宝石,不需要
#默认情况下,在生产环境中。
集团:资产做什么
gem“咖啡轨”,“~>3.2.2”
gem'sass-rails',“~>3.2.5”
“丑”宝石
终止
小组:生产部
宝石“pg”
终止
小组:开发,:测试
宝石“绝妙印花”
宝石粉
gem'sqlite3'
宝石“精灵工厂”
终止
我可以提交表单(我不应该能够提交),验证工作正常(rails会给我返回预期的消息)。 我试图通过扫描gem代码对其进行调试,发现在每个具有验证的表单之后都会插入一个脚本标记。 我的问题是窗口[form.id]。验证器总是空的

我使用普通的表单生成器,尝试剥离所有其他脚本/样式/html,直到我只有表单和所需的javascripts(jquery和rails.validations),但它就是不起作用

非常感谢您的帮助:(

这对我很有用

<%= form_for @merchants_list, :url => {:controller => 'merchants_lists', :action => 'create'},:html => {:id => "merchants_details_form",:multipart => true},:validate => true do |f| %>
{:controller=>'merchants\u list',:action=>'create'},:html=>{:id=>“merchants\u details\u form”,:multipart=>true},:validate=>true do | f |%>

如果您使用的是客户端验证gem,建议您在Gemfile.C\u S\u V gem中客户端验证之前先编写Jquery\u rails,然后使用Jquery Ajax进行验证。
没别的事可做。这是一个令人敬畏的宝石,尽管存在一些小问题。

我也有类似的问题-客户端验证不起作用,验证程序哈希值为空。当我尝试添加到表单时,它开始起作用(所有验证程序都在哈希值中),但是没有它应该可以工作。所以最后我发现在创建输入时必须使用:符号表示法。例如,
f.input“name”
不起作用,但
f.input:name
起作用,它的验证器最终被自动加载。

不太了解haml,但不应该
validate:true
be
:validate=>true