人们可能认为以下代码可以访问I18n:
= label_tag(:person_name)
查找en.helpers.label.person_name或类似内容。然而,Rails代码似乎根本不使用I18n:
159: def label_tag(name = nil, content_or_options = nil, options = nil, &block)
160: options = content_or_options if block_given? && content_or_options.is_a?(Hash)
161: options ||= {}
162: options.stringify_keys!
163: options["for"] = sanitize_to_id(name) unless name.blank? || options.has_key?("for")
164: content_tag :label, content_or_options || name.to_s.humanize, options, &block
165: end
因此,似乎唯一的选择是明确调用label_tag(:person_name, I18n.t(:person_name))
。这似乎是不必要的,所以我是否遗漏了什么或者应该为rails修补程序工作?欢迎任何建议。
label_tag t(:person_name)
。 - Garrett Lancasterlabel_tag
的t
方法时,您可能希望在t
上使用:scope
选项来帮助DRY化。 - mikeycgto