簡體   English   中英

使用Devise進行客戶端驗證

[英]Client side validations with Devise

我正在嘗試使用帶有Devise的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" %>

Argc,argv! 我正在使用Rails 3.2.1,寶石的最新版本與3.2不相容,因此是噩夢。 使用3.2.0.beta.2修復了這些問題。 謝謝!

嘗試直接在您的字段上輸入:validates => true,如下所示:

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

換線

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

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

我還沒有廣泛使用過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| %>

有幫助嗎?

要使用穩定版本,請使用支持rails 3.2.x的最新穩定版3.0.3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM