0

我安装了 gem 'client_side_validations',运行 bundle 并运行 rails g client_side_validations:install

安装 DIDN"T 创建任何 js 文件,所以我创建了它们并将 HitHub 中的代码放在我的 assets/javascript 文件夹中。

在 application.js 中添加了一行

  //= require rails.validations  

在 application.html.erb 中添加了一行

       <%= javascript_include_tag :defaults, "rails.validations", "rails.validations.custom" %>

并且验证无法在线工作(使用 Devise gem)

在我看来:

 <%= form_for resource, ... , :validate => true do |f| %>

在 GoogleChrome 控制台日志中:

   Failed to load resource: the server responded with a status of 404 (Not Found)
"/assets/javascripts/rails.validations.custom.js"
"/assets/javascripts/rails.validations.js"

我错过了什么?

4

1 回答 1

2

当您运行命令rails g client_side_validations:install时,它似乎只生成初始化程序config/initializers/client_side_validations.rb

但是,在“安装”部分下的github 页面上,他们提到了将 javascript 文件复制到项目资产的命令:rails g client_side_validations:copy_assets

注意:如果您运行 Rails >= 3.1,则不再需要在布局中添加 javascript 文件,<%= javascript_include_tag "application" %>只要 application.js 包含包含目录//= require_tree .下所有 javascript 文件的行就足够了app/assets/javascripts

在初始化client_side_validations.rb文件中,您还需要取消注释最后一个块:

# Uncomment the following block if you want each input field to have the validation messages attached.
ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
  ...
end

完成此操作后,您需要重新启动服务器以使更改生效。

于 2012-10-13T05:52:07.220 回答