タマニチェンコさんのブログ

最新一覧へ

« 前へ234件目 / 全239件次へ »
ブログ

Railsいじり

今日は、なんとなくRailsを研究していました。

GetText
GetTextは、便利ですね〜。もっと前から使うべきだったか。
でも、和名取得に独自にNameUtilsと言うのを作ってしまったんだよな〜。
Scaffoldの日本語化と合わせて、そっちのほうが使いやすいかも。

日本人としては、Excelのテーブル定義書からスムーズにカラム名の和名が取れるとGood!だと思った。

TypeName

module AutoTypeName
include TypeUtil

alias old_method_missing method_missing if respond_to? :method_missing

def type_name(attr_name, name_type = :long)
case name_type
when :long then getLongType attr_name, send(attr_name.to_s)
when :short then getShortType attr_name, send(attr_name.to_s)
when :other then getOtherType attr_name, send(attr_name.to_s)
end
end

def method_missing(method_symbol, *parameters)
if method_symbol.to_s.match /(.*)_type_long_name$/
type_name "#{$1}_type"
elsif method_symbol.to_s.match /(.*)_type_short_name$/
type_name "#{$1}_type", :short
elsif method_symbol.to_s.match /(.*)_type_other_name$/
type_name "#{$1}_type", :other
elsif respond_to? :old_method_missing
old_method_missing method_symbol, *parameters
else
super
end
end

end


関連で、こんなコードを書いた。
区分マスターを作るのって日本人だけかも知れないけど、やっぱりなんとなく区分マスターは外せないと思うので、スムーズに区分から区分名を取りたい。
method_missingの使い方がイマイチ解らなかったので、トライ&エラーになったけど、割とうまく出来たかなーと思います。

区分フィールドは、カラム名の最後に"_type"と付ける規約が前提で、それに"_long_name"とついてきたら自動的に和名を引いてしまう仕様です。
コメントを書く
コメントを投稿するには、ログイン(無料会員登録)が必要です。