pockestrap

Programmer's memo

Ruby on Rails で、スキーマ定義からモデルのファイルを生成する

Migration だけ先にがーーーっと書いたらモデルを作るのがめんどくさくなったので、Rakeのタスクを書きました。

gist.github.com

上記ファイルをlib/tasks/model_from_schema.rakeなどとして保存して、下記のようにコマンドを実行すると使用することが出来ます。

$ bundle exec rake model_from_schema:gen

NoMethodErrorとか出たらいい感じに修正すると動くと思います

動作

app/models/下に、テーブルに対応するモデルを作成します。

また外部キーから対応するモデルにbelongs_tohas_manyを付与します。

仕組み

ActiveRecord::Schemaスキーマ構造を解析するようなメソッドで上書きした上で、db/schema.rbを直接loadして実行しています。
短いのでコードを読めばわかると思います。

まとめ

ちゃんと調べてないけど車輪を再発明した気がする。