2012-07-20 110 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时,这些名称默认用作标记标题。