2012-09-06 72 views
0

我的模型:Rails的,简单的形式,和客户端验证工作不

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 %> 

似乎有不被任何客户端验证正在执行。我可以在不填写任何信息的情况下提交表格。有任何想法吗?

编辑:好吧,我看着我的页面的源代码,它有这样的错误:

窗口[ 'new_hotel'] = { “类型”: “SimpleForm :: FormBuilder”, “error_class”:“弃用警告:[SIMPLE_FORM] SimpleForm.error_class已被弃用且无效。(在(eval)处从error_class调用:1)“,”error_tag“:”DEPRECATION WARNING:[SIMPLE_FORM] SimpleForm.error_tag已被弃用且无效。 (eval)处的error_tag调用:1)“,”wrapper_error_class“:”DEPRECATION WARNING:[SIMPLE_FORM] SimpleForm.wrapper_error_class is deprecated and no effect。(called from wrapper_error_class at(eval):1)“,”wrapper_tag“: “(DIVRECATION警告:[SIMPLE_FORM] SimpleForm.wrapper_tag已弃用且无效)(在(eval)处的wrapper_tag调用:1)”,“validators”:{“hotel [name]”:{“presence”:{“message “:”不能空白“},”长度“:{”messages“:{”maximum“:”太长(最多15个字符)“},”maximum“:15}}}};

回答

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 

生成初始化。

+0

好,现在名称字段开始灰色。当我点击它时,它会变红,然后当我键入一个字母时,它会变绿。所以它不起作用,但至少现在正在做一些事情。关于如何使其完全正确工作的任何想法? –

+0

在初始化程序中查找'config.wrappers'部分。有一些选项,比如'b.optional:maxlength','b.optional:pattern'等等。 –

+0

我改变了这个b.use,但它似乎没有改变任何东西:#从字符串输入的长度验证计算maxlength b.use:maxlength –