Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rails と人魚の話/rails-and-mermaid

Rails と人魚の話/rails-and-mermaid

Masatoshi Moritsuka

April 04, 2024
Tweet

More Decks by Masatoshi Moritsuka

Other Decks in Programming

Transcript

  1. 自己紹介 森塚 真年 @sanfrecce-osaka or @sanfrecce_osaka from: 大阪府枚方市 趣味: コミュニティ・勉強会

    Machida.rb ・Hirakata.rb 株式会社エンペイ Ruby3.2/Rails7.0 Node.js v18/Vue.js 3.3/Vuetify 3.4 最近 Layout Cop を全部ドキュメント読んで設 定した
  2. rails-mermaid_erd 導入の手順 Gemfile に gem "rails-mermaid_erd", group: :development を追加 bin/rails

    mermaid_erd Rails のER 図をMermaid で柔軟に生成できるGem を 作りました Repository Demo Page
  3. 裏側の仕組み 1. で model の 定義から Hash を組み立て 2. の

    window.SCHEMA_DATA に 1 で組み立てた Hash を json に変換して bind 3. ファイルとして出力(JS 部分は cdn の Vue を使っ ているので html ファイル単体で動く) RailsMermaidErd::Builder.model_data templates/index.html.erb
  4. migration に hook させて git で 管理しよう! %w(db:migrate db:schema:load).each do

    |task| Rake::Task[task].enhance do Rake::Task['mermaid_erd'].invoke if Rails.env.development? end end
  5. 最後に rails-mermaid_erd べんり migration に hook させて更新して git 管理すれば view

    として扱える activeadmin 等の管理画面の view ファイルとして 扱えば認証も解決 ( 今後は) 社内で ER 図 の勉強会 をやっていき!