0

何が間違っているのか本当にわかりません。私は宝石の3-1安定ブランチにいます。それがバグなのか私の愚かなのかわからない。client_side_validationsは私の検証を認識しません。

これが私のコードです:

# 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

フォームを送信できます(送信できないはずです)。検証は機能します(レールは期待されるメッセージを返します)。gem-codeをスキャンしてデバッグしようとしましたが、検証が行われるすべてのフォームの後にscript-tagが挿入されていることがわかりました。私の問題は、window[form.id].validatorsが常に空であるということです。

私は通常のフォームビルダーを使用します。フォームと必要なjavascript(jqueryとrails.validations)だけになるまで、他のすべてのscripts / styles / htmlを削除しようとしましたが、機能しません。

どんな助けでも大歓迎です:(

4

3 に答える 3

0

これは私のために働きます。

<%= form_for @merchants_list, :url => {:controller => 'merchants_lists', :action => 'create'},:html => {:id => "merchants_details_form",:multipart => true},:validate => true do |f| %>
于 2012-05-31T19:56:37.650 に答える
0

client_side_validation gem を使用している場合、Gemfile の client_side_validation の前に Jquery_rails を記述することをお勧めします。Jquery Ajax を使用して検証する C_S_V gem。ほかにすることがない。小さな問題にもかかわらず、その素晴らしい宝石..

于 2012-12-07T05:42:26.260 に答える