我安装了gem'client_side_validations',运行bundle并运行rails g client_side_validations:install
安装没有创建任何 js 文件,因此我创建了它们并将 HitHub 中的代码放入我的 asset/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| %>
在 Google Chrome 控制台日志中:
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"
我错过了什么?
当您运行命令时rails g client_side_validations:install
它似乎只生成初始化程序config/initializers/client_side_validations.rb
.
然而,关于github页面 https://github.com/bcardarella/client_side_validations在“安装”部分下,他们提到了将 javascript 文件复制到项目资产的命令:rails g client_side_validations:copy_assets
Note:如果您运行 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
完成此操作后,您需要重新启动服务器以使更改生效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)