2012-02-16 170 views
2

我正在尝试使用client_side_validations gem与Devise来验证设计注册表单。设计客户端验证

验证与其他一切正常工作,而不是设计生成的窗体。

我添加了相关的:validate => true,但验证只适用于当我点击提交而不是像其他表格一样提交时。

<h2>Sign up</h2> 
<hr /> 

<%= form_for(resource, :validate => true, :as => resource_name, :url => registration_path(resource_name)) do |f| %> 
    <%= devise_error_messages! %> 

    <div><%= f.label :username %> 
    <%= f.text_field :username %></div> 

    <div><%= f.label :email %> 
    <%= f.email_field :email %></div> 

    <div><%= f.label :password %> 
    <%= f.password_field :password %></div> 

    <div><%= f.label :password_confirmation %> 
    <%= f.password_field :password_confirmation %></div> 

    <br /> 

    <div><%= f.submit "Sign up", :class => "btn btn-primary btn-large" %></div> 
<% end %> 

<%= render "links" %> 

回答

4

的argc,argv的!我使用Rails 3.2.1,最新发布的gem与3.2不兼容,因此是噩梦。使用3.2.0.beta.2修复了这些问题。谢谢!

1

我还没有广泛使用client_side_validations gem。但从它的外观来看,它需要在表单(和表单元素)标签中包含data-validate =“true”。

你觉得它在输出HTML表格,如:

<form novalidate="novalidate" method="post" data-validate="true" action="/some_actions" > 

如果你没有找到它,你可能想要写你的form_for这样的:

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), {:validate => true}) do |f| %> 

有何帮助?

+0

https://开头要点.github.com/1844399 data-validate = true设置为 – 2012-02-16 12:09:53

+0

根据gem的用法,您需要这些js文件<%= javascript_include_tag'jquery','rails''rai ls.validations' - %>他们是否也在html页面上? – 2012-02-16 12:14:20

+0

是的,很明显,所有这些都已经到位,这就是为什么它正在渲染它。 – 2012-02-16 12:17:15

3

尝试把:验证=>真您直接场,像这样:

<h2>Sign up</h2> 
<hr /> 

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %> 
    <%= devise_error_messages! %> 

    <div> 
    <%= f.label :username %> 
    <%= f.text_field :username, :validate => true %> 
    </div> 

    <div> 
    <%= f.label :email %> 
    <%= f.email_field :email, :validate => true %> 
    </div> 

    <div> 
    <%= f.label :password %> 
    <%= f.password_field :password, :validate => true %> 
    </div> 

    <div> 
    <%= f.label :password_confirmation %> 
    <%= f.password_field :password_confirmation, :validate => true %> 
    </div> 

    <br /> 

    <div> 
    <%= f.submit "Sign up", :class => "btn btn-primary btn-large" %> 
    </div> 
<% end %> 

<%= render "links" %> 
+0

试过了,没有骰子!我重写了我的用户模型中的设计验证,因此条件筛选器案例不适用。 – 2012-02-16 12:19:39

2

更改的行

​​

<%= form_for(@user, :url => registration_path(resource_name), :validate => true) do |f| %> 
0

要使用一个稳定版本3.0.3的使用,这是最新的稳定版本,支持轨3.2.x中