capsctrldays

2006-05-30 (火) [長年日記]

[Rails] ちょっとしたタイプをどこに置くか

タイプっていうのはカテゴリだとかステータスだとか、

1:男性
2:女性
1:承認待ち
2:活動中
3:削除

みたいなフラグのこと。 カテゴリテーブル作るまでもない程度のちょっとしたやつ。 これをどこに置くか。

  1. モデル
  2. ビュー
  3. ヘルパー
  4. コントローラ

さあどれ。

個人的にはモデル。

モデルにハッシュを指す定数を定義する。

class Person < ActiveRecord::Base
  MAN = 1; WOMAN = 2;
  GENDER = {
     MAN   => '男性',
     WOMAN => '女性'
  }
end

フラグは「フラグ名_type」というカラム名にしてる(フラグ名_idにするといろいろと面倒なので)。 モデル中でフラグじゃなく対応する文字列を返すときは「フラグ名」というメソッドを定義してる。

class Person < ActiveRecord::Base
  MAN = 1; WOMAN = 2;
  GENDER = {
     MAN   => '男性',
     WOMAN => '女性'
  }

  def gender
    return GENDER[self.gender_type]
  end
end

こうするとカラム名とメソッド名がかぶらない。

VIEW側のSELECTタグ用には、それを返すメソッドを作る。

def self.select_gender
  return GENDER.collect{|key, val| [val, key] }
end

key, val を逆転させるのはヘルパの都合上。 特定のタグを入れてないので、まぁモデルでいいんじゃねーかな。

ステータス変更はその都度、メソッドを用意。

def be_man
  self.gender_type = MAN
end

def be_woman
  self.gender_type = WOMAN
end

たずねるメソッドも同じように用意。

def man?
  self.gender_type == MAN
end

def woman?
  self.gender_type == WOMAN
end

でも、ヘルパーかなーという気もしてる。

ビューに変なタグ(ヘルパー)が入るのは、 共同作業的にダメな気がしてるので、ちょっとなあ。

何が正しいのかよく分からん。

どうしたもんかなあ。モデルに書くのは無い気がしてきた。

ああ、設定ファイルというか、定数ファイルみたいなのもあるよね

あれは無い。

こないだコンタクトを買ったんですが

度が一気にアップしてビックリするぐらい見えすぎて、 目の奥が痛いアーンドすぐ眠くなって仕事にならんので、 ひとつ度を下げてもらおうと思います。

分かる人は分かるだろうけど、もう私は「-6」ですよ。 めちゃくちゃ悪すぎ。明日にでも「-5.5」にしてもらう予定。

TV消化

ハルヒ9

んー?こんなのでしたっけ。

エウレカ34

あんま用語を理解してないので、なんかもう別にーって感じ。 GYAOで見た29話までが面白かったなあ。

ガイヤ「激突!巨大家具メーカー」

面白かった。大塚家具行きたい(一度も行ったことない)。イケアは通販やっておくれ。

ガイヤ「ファッションも鮮度が命」

これまたオモシロス。

  • ZARAは一週間で服を作る
  • 緯度作戦
  • 仕事のサイクルは一週間
  • 後追いビジネス
    • ふつうの娘でいい。

きらきらアフロ

大阪城ホール行きたい!チケット取りたい!でも東京は生放送じゃない!関西の人に取ってもらいたい!

本日のツッコミ(全2件) [ツッコミを入れる]
1 babie (2006-05-30 (火) 21:19)

「テーブル(ARモデル)つくるのだるいなぁ」だからモデル(非AR).

2 takahashim (2006-05-30 (火) 23:34)

はぶさんのERD本を100回くらい読めばテーブルを作りたくなるかも。かも。