大家都知道rails默认情况下输入id和名称id = model_attribute和name = model [attribute]。
我的问题是如何从I18n的模型o中获取默认ID或名称?
例如,User.human_attribute_name'password'给出密码标签,以及我如何放置 User.give_me_the_id_or_name'password'并提供'user [password]'或'user_password'
提前考虑^^
答案 0 :(得分: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时,默认使用这些名称作为标记标题。