从Model获取默认名称或id输入

时间:2012-07-20 15:08:15

标签: ruby-on-rails

大家都知道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'

提前考虑^^

1 个答案:

答案 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时,默认使用这些名称作为标记标题。