12/08/2018, 16:07

Sử dụng gem Rails ERD và Annotate trong dự án Rails.

Lần đầu tiên khi được add vào một dự án với các tính năng đã được xây dựng gần như hoàn chỉnh, chắc hẳn chúng ta sẽ đều cảm thấy choáng ngợp với số lượng model, controller, bảng và các trường trong cơ sở dữ liệu. Hôm nay mình sẽ giới thiệu với các bạn 2 gem Rails ERD và Annotate, hy vọng sẽ giúp ...

Lần đầu tiên khi được add vào một dự án với các tính năng đã được xây dựng gần như hoàn chỉnh, chắc hẳn chúng ta sẽ đều cảm thấy choáng ngợp với số lượng model, controller, bảng và các trường trong cơ sở dữ liệu. Hôm nay mình sẽ giới thiệu với các bạn 2 gem Rails ERD và Annotate, hy vọng sẽ giúp các bạn nhanh chóng hiểu và làm quen với dự án mới hơn.

I. Gem Rails ERD. Rails ERD là gem giúp chúng ta generate mô hình thực thể quan hệ trong dự án. Với một dự án lớn, việc đầu tiên của chúng ta có lẽ là xem các mối quan hệ của các model, các attribute ở mỗi bảng và tác dụng của chúng. Rails ERD sử dụng Graphviz để sinh ra file diagrams, vì vậy muốn sử dụng gem Rails ERD, trước hết chúng ta phải cài Graphviz, chi tiết hơn về dự án Graphviz các bạn có thể tham khảo tại đây http://graphviz.org/.

  • Bước 1: Cài đặt Graphviz: Nếu bạn dùng Mac OS X: brew install graphviz Nếu dùng ubuntu thì chạy lệnh sau: sudo aptitude install graphviz Note: Để tránh các lỗi nhỏ xảy ra, các bạn nên dùng bản Graphviz 2.22 trở lên, nếu đã cài đặt graphviz

  • Bước 2: Cài gem Rails ERD Gem Rails ERD yêu cầu phiên bản Rails 3 trở lên, Ruby 1.9.3 trở lên. Trong gem file, các bạn thêm gem

     group :development do
         gem "rails-erd"
    end
    

    Sau đó chạy bundle install nhé. Sau khi install gem xong, Rails ERD đã tạo cho chúng ta 1 Rake task, để tạo ra file Diagram, chúng ta chỉ việc chạy rake: rake erd Xong rồi, giờ thì chúng ta đã có 1 file ERD.pdf, đây là file diagram của dự án như ví dụ bên dưới.

Tuy nhiên nếu bạn muốn xuất file với định dạng khác, hoặc đặt tên file khác thì có thể truyền thêm tham số vào rake như sau: rake erd filename='My project', filetype='dot' Ngoài ra, nếu không muốn truyền tham số nhiều lần, các bạn có thể tạo 1 file config yml có tên ~/.erdconfig trong thư mục dự án với nội dung như sau :

attributes:
 - content
 - foreign_key
 - inheritance
disconnected: true
filename: erd
filetype: pdf
indirect: true
inheritance: false
markup: true
notation: simple
orientation: horizontal
polymorphism: false
sort: true
warn: true
title: sample title
exclude: null
only: null
only_recursion_depth: null
prepend_primary: false
cluster: false
splines: spline

Chi tiết các tham số, các bạn có thể tham khảo tại đây: https://voormedia.github.io/rails-erd/customise.html. II. Gem Annotate Annotate là gem rất hữu ích khi bạn được add vào dự án khi số lượng Model, attributes và routes path là rất lớn, khi đó rất khó để chúng ta follow danh sách các thuộc tính, type, limit trong database. Annotate sẽ sinh ra các dòng comment bên trên mỗi file model hoặc routes khi chúng ta code. Sau khi code xong chúng ta có thể remove hết comment đi và push code lên, rất tiện lợi phải không nào             </div>
            
            <div class=

0