2010-09-28 112 views
0

我已經做了驗證檢查我的形式來檢查電子郵件,用戶名和姓名...這裏是表單驗證Ruby on Rails的

class User < ActiveRecord::Base 
    validates_presence_of :email, :firstname, :username 


    validates_format_of :email, 
        :with => /[-!#$&'*+\/=?`{|}~.\w][email protected][a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])*(\.[a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])*)+$/, 
        :message => ' appears to be invalid' 
end 

在我看來,部分看起來像這樣

代碼
<%= form_for(@user) do |f| %> 
    <% if @user.errors.any? %> 
    <div id="error_explanation"> 
     <ul> 
     <% @user.errors.full_messages.each do |msg| %> 
     <li> 
      <%= msg %> 
    </li> 
     <% end %> 
     </ul> 
    </div> 

的問題是wenever驗證失敗,所有的錯誤都表格上面列出....我想要顯示的誤差相對應的文本框.....我怎麼做,

+6

至少你應該給人們信用試圖回答您的的問題。如果答案不夠好,請解釋爲什麼不。我看到至少有兩個問題,其中沒有一個答案得到任何讚揚,而你的問題在那麼普遍的情況下,至少在好的方向上。 – nathanvda 2010-09-28 07:28:58

回答

5

將這個旁邊的複選框/文本字段或其他形式的元素:

<%= @user.errors.on(:attribute_name) %> 
+1

感謝傢伙....我也有一個更懷疑......如果我喜歡我的提交表單,而無需輸入電子郵件字段中的任何值,我得到2個錯誤在時間 *電子郵件不能爲空 *電子郵件似乎無效。 如何只顯示第一條評論 – 2010-09-28 11:09:59