大家好,大家都知道 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'
提前考虑^^
大家好,大家都知道 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'
提前考虑^^
看源头。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 的意思是什么?当您将模型渲染为模板时,这些名称默认用作标签标题。