ruby-on-rails client_side_validation simple_form javascript错误

Ruby on Rails应用程序并尝试添加client_side_validation工作并在访问屏幕字段时获得两个javascript运行时错误。

错误;

未捕获的TypeError:无法调用未定义的方法’add’

未捕获的TypeError:无法调用未定义的方法’remove’

Gemfile

source 'https://rubygems.org' ........ gem 'simple_form' gem 'client_side_validations' gem 'client_side_validations-simple_form' ..... 

application.html.erb

        "all" %>     ... 

视图 – _form.html.erb

   true do |f| %>  
....

该模型

  class Basin < ActiveRecord::Base include ActiveModel::ForbiddenAttributesProtection belongs_to :country has_many :drills validates :country_id, :name, presence: true validates :name, uniqueness: {scope: [:country_id], message: "A country can only have one basin with this name"} end 

配置/环境/开发添加

  config.assets.precompile += %w( rails.validations.js ) 

并预编译代码

在config / initializers / simple_form中设置config.browser_validations = true

在config / initializers / client_side_validations中

添加

  require 'client_side_validations/simple_form' if defined?(::SimpleForm) 

错误访问Basins页面并从下拉菜单中选择Country时选择(f.association:country),当我使用Web浏览器选项卡到下一个字段时Chrome和开发人员 – Java Script Tools Uncaught TypeError无法调用方法’已删除’未定义的

这发生在生成的代码中 – app / assets / javascripts / rails.validations.js关于模块中的第175行

  window.ClientSideValidations.enablers 

我已经尝试了很多方法来纠正这个错误,包括更改app / assets / javascript的include顺序,重新运行预编译,更改app视图,将config.assets.compile = false更改为true(现在设置回false) )

非常感谢任何帮助

感谢Pierre Le Count

您还需要在rails.validations.simple_form之后添加rails.validations 。 您可以添加如下:

 <%= javascript_include_tag "application", "rails.validations", "rails.validations.simple_form" %> 

要么,

在app / assets / javascripts / application.js中:

 //= require rails.validations //= require rails.validations.simple_form 

然后在app / views / layouts / application.html.erb中将javascript_include_tag更改为以下内容:

 <%= javascript_include_tag "application" %>