我的模特:
class Hotel < ActiveRecord::Base
attr_accessible :name
belongs_to :user
has_many :room_types
validates :user_id, presence: true
validates :name, presence: true, length: { in: 2..15 }
end
表单代码:
<%= simple_form_for @hotel, :validate => true do |f| %>
<%= f.input :name %>
<%= f.submit 'Create Hotel' , :class => 'btn btn-primary', :type => 'submit' %>
<% end %>
似乎没有执行任何客户端验证。我可以在不填写任何信息的情况下提交表格。有什么想法吗?
编辑:好的,我查看了我的页面的来源,它有这个错误:
window ['new_hotel'] = {“type”:“SimpleForm :: FormBuilder”,“error_class”:“DEPRECATION WARNING:[SIMPLE_FORM] SimpleForm.error_class已弃用且无效。(从(eval)的error_class调用:1 )“,”“error_tag”:“弃用警告:[SIMPLE_FORM] SimpleForm.error_tag已弃用且无效。(从(eval)的error_tag调用:1)”,“wrapper_error_class”:“DEPRECATION WARNING:[SIMPLE_FORM] SimpleForm。不推荐使用wrapper_error_class并且没有效果。(从(eval)的wrapper_error_class调用:1)“,”wrapper_tag“:”DEPRECATION警告:[SIMPLE_FORM] SimpleForm.wrapper_tag已弃用且无效。(在(eval)从wrapper_tag调用:1)“,”验证者“:{”hotel [name]“:{”presence“:{”message“:”不能为空“},”length“:{”messages“:{”maximum“: “太长(最多15个字符)”},“最大”:15}}}};答案 0 :(得分:3)
您必须在browser_validations
文件中设置config/initializers/simple_form.rb
选项
# Tell browsers whether to use default HTML5 validations (novalidate option).
# Default is enabled.
config.browser_validations = true
PS别忘了运行
$ rails g simple_form:install
生成初始化程序。