我安装了gem'client_side_validations',运行bundle并运行rails g client_side_validations:install
安装DIDN“创建任何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"
我错过了什么?
答案 0 :(得分:2)
当您运行命令rails g client_side_validations:install
时,它似乎只生成初始值设定项config/initializers/client_side_validations.rb
。
但是,在“安装”部分的github page下,他们提到了将javascript文件复制到项目资产的命令:rails g client_side_validations:copy_assets
注意:如果您运行Rails&gt; = 3.1,则无需再在布局中添加javascript文件,只要有<%= javascript_include_tag "application" %>
就足够了application.js包含行//= require_tree .
,其中包含app/assets/javascripts
目录下的所有javascript文件。
在初始化程序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
完成此操作后,您需要重新启动服务器才能使更改生效。