rails-erdでRails Engineベースのアプリケーション(Spree、Solidusなど)のER図を得る。

rails-erdでRails Engineベースのアプリケーション(Spree、Solidusなど)のER図を得る。

たっぷりとしたコードを含むRails Engineは上から読んでいくにはつらいものです。

いくつかのgemに分割されているSpreeのようなアプリケーションを読むにはインストールして起動しつつ、その上で読んでいくのが楽ですが、手がかりがないのはつらい。ということてrails-erdを使います。しかし、

Engine以下のmodelsは読んでくれない

という問題があるのでそれに対処します。

Engine以下のmodels以下のファイルをapp/models以下にコピー

これでrails-erdのスコープに入ります。

Solidusを読みたいので、Solidusをインストールしたうえでコピーします。

$ cp -R ./vendor/bundle/ruby/2.3.0/gems/solidus*/app/models/* app/models/

rails-erdインストール

graphvizぐらいはすでに入っているかもしれませんがインストール。

$ sudo apt-get install graphviz
group :development do
  gem "rails-erd"
end
$ bundle install

書きだし

$ bundle exec erd

でかい

でかい

f:id:mmmpa:20160615061941j:plain

ちなみにネームスペース、クラス名は特に汚染されないのでコピーしたままでもアプリケーションは動きます。