Ruby on Rails で、スキーマ定義からモデルのファイルを生成する
Migration だけ先にがーーーっと書いたらモデルを作るのがめんどくさくなったので、Rakeのタスクを書きました。
上記ファイルをlib/tasks/model_from_schema.rake
などとして保存して、下記のようにコマンドを実行すると使用することが出来ます。
$ bundle exec rake model_from_schema:gen
NoMethodError
とか出たらいい感じに修正すると動くと思います
動作
app/models/
下に、テーブルに対応するモデルを作成します。
また外部キーから対応するモデルにbelongs_to
とhas_many
を付与します。
仕組み
ActiveRecord::Schema
をスキーマ構造を解析するようなメソッドで上書きした上で、db/schema.rb
を直接load
して実行しています。
短いのでコードを読めばわかると思います。
まとめ
ちゃんと調べてないけど車輪を再発明した気がする。