TechBox

スタートアップで働くRails&機械学習エンジニアのブログ。時々GT-Rと旅行。

RailsのAttributesを可視化するrails-erdをインストールする

RubyOnRailsでアプリを作っていて、generateする時には必死にDBのリレーションとか、 Model間のAttributionを考えてhas_manyとかbelongs_toとか付けていきます。

が、色々案件を抱えて一時的にソース見なかったりすると、
「アレ ドンナ関連付けサレテタッケ」ってなったりします。

それとか、だいぶコーディングが終わった後にモデル同士の関連付けの確認をしたくなった時など…
DBのER図的な物が見れたらどれだけ嬉しいかって思いますよね!

f:id:daisuke-jp:20161005160938p:plain

久々に開いたプロジェクトでアレってなったので、今回導入してみます。

  • 実行環境
  • 準備
    • graphvizインストール
    • rails-erdインストール
  • ER図生成
続きを読む

Railsでreferencesを使用した外部キーに、同時にUnique属性を設定する

Railsで新しいモデル(テーブル)の作成で外部キー(外部参照)を設定する時に、
同時にユニーク属性を設定していく手順を記載します。
余り使う機会はないかもしれませんが、今回は以下の例を使っていきます。

(例)Userが複数のOrganizationに所属できる多対多の関係で、そのうちの一のOrganizationをデフォルトとして保持するDefaultOrganizationテーブルを作成する場合。
   以下がER図です。

f:id:daisuke-jp:20190116100404p:plain

試行錯誤して結果を得たので、経過も踏まえて記述します。 解答に書いている事がやり方なので、手早く正解が欲しい方はそちらをご覧下さい。

  • なぜ必要なのか
  • 普通に外部参照だけをする場合
  • index作成と同じ要領でuniqueしてみる
    • 1ファイル内で指定
    • 2ファイル内で別々に指定
  • インデックス付与だけを別に実行
  • 解答
続きを読む

has_many :throughな多対多のリレーションから、中間テーブルの項目を使って1レコードを取得する

今回はRubyOnRailsでのActive Recordのアソシエーションの話です。

ユーザーが複数の組織に所属可能っていうシステムを作っていく時に、ユーザーのデフォルトの組織を設定したり、 逆に組織に対して代表者を1人決めたいって状況があると思います。
そんな時、中間テーブルのステータスなりフラグを使って1レコード絞って表示したいと思ってやってみると、 案外どーやるんだろ?ってなったりします。
そんな時の自分なりのやり方。

f:id:daisuke-jp:20160915112130p:plain

  • 多対多のリレーションとは
    • (例)UserとOrganizationの関係
  • 中間テーブルを作る
  • UserのデフォルトOrganizationを設定する
続きを読む

GitHubにカンバン方式のプロジェクト管理が導入された話

f:id:daisuke-jp:20160906093046j:plain

GitHubでは、様々なサードパーティー製のサービスが連携できます。
TrelloとかJiraとか優秀なプロジェクト管理サービスも連携出来ていて、それらを使っていた事も多かったと思います。
今回のアップデートで、GitHubでもプロジェクト管理が出来るようになりました。

  • GitHubにプロジェクト管理が導入
  • 早速使ってみる
    • リポジトリに入ってプロジェクトを作成する
    • カラム(リスト)の追加
    • カードの追加
    • カードの詳細を記載していく(Issuesに登録)
    • Issuesの編集
    • Issueのクローズ、カラムの移動
  • まとめ
続きを読む