«前の日記(2009-07-27) 最新 次の日記(2009-07-31)» 編集

会長@腹部日記


2009-07-28 [長年日記]

_ TableDefinitionを使って、Migrationファイルをちょっとだけ便利にする

今のプロジェクト内では、必要なカラムをschemaに定義しないで、問題を起こすという悪循環が続いています*1。以下のような、一行で複数カラムを追加するコードを提案してみます。

module ActiveRecord
  module ConnectionAdapters
    class TableDefinition
      def hoge_column(*args)
        options = args.extract_options!
        column("foo", :integer, options)
        column("bar", :text, options)
      end
    end
  end
end

こんな使い方です。

class CreateHoge < ActiveRecord::Migration
  def self.up
    create_table :tests do |t|
      t.hoge_column
      t.timestamps
    end
  end

  def self.down
    drop_table :tests
  end
end

いつもコピペでモデルやマイグレーションファイルを追加するプロジェクトです。やはり意味無いかもしれません(´・ω・`)

リファレンスをメモしておきます

Tags: Ruby Rails

*1 Railsやめたほうがいい。。。