labelヘルパーメソッド

ヘルパーメソッドにlabelっていうのがあるって今頃しりました。でさっそく使おうとか思ったんですけど、内部でhuman_attribute_nameではなくて、単にメソッド名をhumanizeしてるだけなのでgettext入れてても日本語化されないっす。マジでー?とりあえず、以下のコードをどこかで実行すればOK。

module ActionView::Helpers
  class InstanceTag #:nodoc:
    def to_label_tag(text = nil, options = {})
      name_and_id = options.dup
      add_default_name_and_id(name_and_id)
      options["for"] = name_and_id["id"]
      content = (text.blank? ? nil : text.to_s) || (
          object.class.respond_to?(:human_attribute_name) ? 
            object.class.human_attribute_name(method_name) : nil) ||
          method_name.humanize
      content_tag("label", content, options)
    end
  end
end

でも、こういうのってやっぱ本家に投げるべきなんだよね・・・ http://dev.rubyonrails.org/ を見ると結構手順を踏まないとだめなのね。trunkのテストやってみたけど、ちゃんとセットアップしてないからパスしないし。うーん、目先の仕事が大事っす。あとでやろうっと。