定数の書き方。

真似したいと思った定数の書き方。

class Foo < ActiveRecord::Base
module Statuses
UNCHECKED   = 0
UNAVAILABLE = 1
AVAILABLE   = 2
end
include Statuses

def status_text
case self.status
when UNCHECKED;   '未確認'
when UNAVAILABLE; '使用不可能'
when AVAILABLE;   '使用可能'
end
end
end

こうすると

if foo.status == Foo::Statuses::AVAILABLE

のように書けるので、モジュールをネストしない

if foo.status == Foo::AVAILABLE

よりもわかりやすい。
しかもincludeしてるので内部ではローカルとして使える。
で、このstatusを表示したいことがあるのでstatus_textというメソッドも追加してみた。

タイトルとURLをコピーしました