0

大家好,大家都知道 Rails 默认放置 id 和名称 id=model_attribute 和 name=model[attribute]。

我的问题是如何使用 I18n 从 Model o 获取默认 ID 或名称?

例如 User.human_attribute_name 'password' 给出密码标签,以及我如何放置 User.give_me_the_id_or_name 'password' 并给出 'user[password]' 或 'user_password'

提前考虑^^

4

1 回答 1

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 的意思是什么?当您将模型渲染为模板时,这些名称默认用作标签标题。

于 2012-07-22T19:48:47.150 回答