2012-07-20 109 views
0

輸入默認情況下,所有人都知道的軌道默認情況下把id和model_attribute id = model_attribute和name = model [屬性]。獲取默認名稱或編號從

我的問題是如何從I18n模型獲得默認ID或名稱?

例如User.human_attribute_name「密碼」給密碼標籤,以及我要怎麼做才能把 User.give_me_the_id_or_name「密碼」,給「用戶[密碼]」或「USER_PASSWORD」

思在提前^^

回答

0

看看源代碼。 http://github.com/rails/rails/blob/master/actionpack/lib/action_view/helpers/tags/base.rb 如果你真的想要在你的模型類中構建自己的構造。 :)

def self.give_me_the_id_or_name(method) 
    result = "#{self.model_name.param_key}[#{method.to_s.sub(/\?$/,"")}]" 
    result.instance_eval do 
    def id 
     self.gsub(/\]\[|[^-a-zA-Z0-9:.]/, "_").sub(/_$/, "") 
    end 
    end 
    result 
end 

User.give_me_the_id_or_name(:password) ===> "user[password]" 
User.give_me_the_id_or_name(:password).id ===> "user_password" 

但實際上,我不明白你的意思的I18n什麼?當您將模型渲染爲tempate時,這些名稱默認用作標記標題。