TechBox

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

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

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

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

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

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

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

GT-Rの維持費についてまとめてみた。

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

今回はGT-Rの維持費について書いていきます。
あくまでも僕の場合って前提なんですが、これからオーナーになるか迷っている方の、
少しでも参考になればと思って書こうと思います。
今までいくら掛かったのか考えた事がなかったので、自分の為も含めて。

  • 僕のGT-Rについて
    • 購入時
    • 現状
  • 維持費
  • 3年間での故障ポイント
  • まとめ
続きを読む

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のクローズ、カラムの移動
  • まとめ
続きを読む