IT分からんわ~_~;

IT色々お勉強中のブログ

rails enumの表示を共通化

viewでそれぞれ書くのがめんどくさかったんでmodelに定義 human_hoge

  ['hoge', 'hoge2', 'hoge3'].each do |method|
    define_method "human_#{method}" do
      I18n.t("activerecord.attributes.applicant.#{method.pluralize}").fetch(send(method).to_sym)
    end
  end

クラスメソッドバージョン

  ['hoge', 'hoge2', 'hoge3'].each do |method|
    define_singleton_method "collection_#{method}" do
      send(method.pluralize).map{|k,v| [I18n.t("activerecord.attributes.applicant.#{method.pluralize}.#{k}"),k]}.to_h
    end
  end