読者です 読者をやめる 読者になる 読者になる

Rails Webook

自社のECを開発している会社で働いています。Rails情報やサービスを成長させる方法を書いていきます

Railsの開発効率をあげる - Rails-ERDを使ってRailsでER図を簡単につくる

Rails gem 開発を効率化する DB

Rails-ERDとは

Rails-ERDとは、
ActiveRecordをもとにRailsプロジェクトのER図を作成してくれるツールです。
Railsプロジェクト(ActiveRecord)からER図を簡単に作れるので、Excelや他のツールでER図を作って、Railsに反映させていくという2重管理をしなくてよくなり、メンテナンスコストが下がるので開発効率があがると思います。


Rails-ERDで作成されたER図の例(CMS)です。
f:id:nipe880324:20141025035233p:plain:w480

対象読者

  • Railsの開発効率を上げたい方(特に、ER図をDryに管理したい方)

動作確認

  • Ruby 2.0
  • Rails 4.1
  • rails-erd 1.1.0
  • Graphviz
  • Mac OS X 10.10 Yoshimite

目次

1. Railsプロジェクトを作成

まずはRailsプロジェクトを作成します。

rails new rails-erd_test
cd rails-erd_test

次にRails-ERDでER図を作成するために、モデルを作成します。

rails g scaffold User firstname:string lastname:string email:string
rails g model Post title:string body:text user:references
rails g model Comment body:text user:references
rake db:migrate

Userモデルにhas_manyを追加します。
ちなみに、PostモデルとCommentモデルには、user:referencesを指定したのでbelongs_toが追加されています。

# app/models/user.rb

class User < ActiveRecord::Base
  has_many :posts
  has_many :comments
end

2. Rails-ERDのインストール

では、さっそくRailsにRails-ERDをインストールしていきましょう。

GemfileにRails-ERDを追加します。

# Gemfile

group :development, :test do
  gem 'rails-erd'
  # 上記でうまくいかない、かつ、OSX Mavericksを使っている場合はこちらを使ってください
  # gem 'rails-erd', github: 'paulwittmann/rails-erd', branch: 'mavericks'
end

Bundlerでgemをインストールします。

bundle install

次に、Graphvizというグラフを作成するツールをいれます。
http://www.graphviz.org/Download..phpからOSに応じてダウンロードし、インストールしてください。



3. Rails-ERDの使い方

rake erdコマンドでER図が作成されます。

$ rake erd
Loading application environment...
Loading code in search of Active Record models...
Generating Entity-Relationship Diagram for 3 models...
Done! Saved diagram to erd.pdf.

ファイルは、erd.pdfで作成されましたので、開いてみましょう。
f:id:nipe880324:20141025035156p:plain:w480


次のようにオプションを指定すると、主キー、外部キーの表示、ファイル名、ファイルタイプを変更できます。

$ rake erd attributes=foreign_keys,primary_keys,content filename=rails-erd filetype=png

f:id:nipe880324:20141025035210p:plain:w480

オプションの詳細はhttp://voormedia.github.io/rails-erd/customise.htmlを参照してください。


以上です。
Rails-ERDを使うことで、Railsプロジェクト(ActiveRecord)からER図を簡単に作れるので是非使ってください。