« mysqldump で文字化け | メイン | Capistrano で簡単にメンテナンス画面表示(2) »

Rails で mysql の ENUM カラムを使用する

[rails] [rails_plugin] [mysql] [enum]

enum-column というプラグインがあります。
これをインストールすることで、mysqlのenumカラムを使用できるようになります。

まずはインストール

./script/plugin install enum-column

DBのスキーマはこんな感じでを記述します。

  create_table :enumerations, :force => true do |t|
    t.column :severity, :enum, :limit => [:low, :medium, :high, :critical],
       :default => :medium
    t.column :color, :enum, :limit => [:red, :blue, :green, :yellow]
    #...
  end


エラーチェックは、モデルに以下のように記述。

  validates_columns :severity, :color

コードの中では、値はシンボルで扱われます。

    @e = Enumeration.new
    @e.severity = :low

ビュー内で、


 <%= input 'e', 'severity' >

このように記述すると、以下のようなHTMLが返ります。


     <select id="e_severity" name="e[severity]">
        <option value="low">low</option>
        <option value="medium" selected="selected">medium</option>
        <option value="high">;high</option>
        <option value="critical">critical</option>
     </select>

結構便利。

参考URL

トラックバック

このエントリーのトラックバックURL:
http://i-am.web777.net/mt/mt-tb.cgi/34

コメントを投稿