2011-04-26 55 views
23

我想知道是否有方法來更改與其關聯的驗證錯誤的字段名稱。例如,如果我沒有任何數據提交名字(表中確實爲fname),它就會大喊Fname can't be blank.在Rails中更改錯誤字段名稱

是否可以將其更改爲First Name can't be blank

回答

60

一般的做法現在給天是編輯locals像這樣:

# config/locales/en.yml 
en: 
    activerecord: 
    attributes: 
     user: 
     fname: "First Name" 

你的錯誤消息現在會說:「首先名稱不能......」

爲了完整爲了你,你有另一種選擇。將以下內容添加到用戶模型中:

class User < ActiveRecord::Base 

    HUMANIZED_ATTRIBUTES = { 
    :fname => "First Name" 
    } 

    def self.human_attribute_name(attr) 
    HUMANIZED_ATTRIBUTES[attr.to_sym] || super 
    end 

end 
+1

+1。但我認爲'def self.human_attribute_name(attr)'不是必需的。 – Swanand 2011-04-26 05:36:22

+13

in Rails 4我必須爲'self.human_attribute_name(attr)'方法調用添加第二個參數。所以它變成'self.human_attribute_name(attr,options = {})' – Peter 2013-07-05 14:48:17