20201117_アウトプット(ER図完成)

アプトプット画像

今日行ったこと 6時間 

  • ER図とモデルのアソシエーションについて熟考(ER図の案できた!嬉しい!)

  • ActiveHashのカリキュラム完了。

  • 出張移動時間に、クレジット機能の実装について黙読。



新しい発見

ActiveHashカリキュラムからの学び

  • ActiveHash自体はGem。

(1)データベースに保存しておくほど重要なデータではない
(2)性質上、そんなに頻繁に変更/増減しない
(3)ActiveRecordと同じ感覚でデータを扱いたい
上記に当てはまるときに便利。(多対多には適さない)

  • ポイントとしては
    (1)Gemの導入が必要 gem 'active_hash'
    (2)モデルは作成しつつもマイグレーションファイルは作成しない --skip-migration
    (3)ActiveRecordを使うために、(2)で作成のモデルにActiveHash::Baseクラスを継承する
    (4)他のテーブルと絡む場合は(マイグレーションファイル&テーブルを作った側に)ActiveHashのモデルに書いてあるidカラムを記載しdb:migrateする
    (5)アソシエーションを組むにはbelongs_to_active_hashメソッドを使う。(ActiveHashを用いたアソシエーションの設定は他にもある

  • numericality: { other_than: 1 }「数値が1以外の時に」という意味になる

  • rails g controller articles index newで(7つのアクション内なら)indexアクションとnewアクション一気に作れることを思い出す

  • ちなみにrails g controller articles resourcesを実行したらindexからdestroyまでのコントローラーまで作れるかなと思いきやただのresourcesコントローラーにしかならなかった(resourcesはあくまでルーティングだけかーと理解深まった)

  • cssは自分でstylesheetsの中にファイル作らないといけないことを思い出す

  • ビューのヘルパーメソッドにcollection_selectというのがありデータをプルダウン形式で表示できる。

  • ちなみに、collection_selectはちょっと複雑だった(笑)第4引数までは必ず設定する必要があるんだって。

<%= form.collection_select(保存されるカラム名, オブジェクトの配列, カラムに保存される項目, 選択肢に表示されるカラム名, オプション, htmlオプション) %>
引数 役割
第一引数(保存されるカラム名 :genre_id 保存先のカラム名
第二引数(オブジェクトの配列) Genre.all 配列データを指定する(今回はジャンル情報の配列)
第三引数(カラムに保存される項目) id 表示する際に参照するDBのカラム名
第四引数(選択肢に表示されるカラム名 name 実際に表示されるカラム名
第五引数(オプション) {} 今回はオプションの指定なし(include_blankという値のない選択肢を先頭にするオプションなどがある)
htmlオプション {class:"genre-select"} 今回はクラス名を付与(cssを当てるため)



感想

  • マウスのためのUSBポート届いた♪ ER図がグッと描きやすくなった。

  • ER図の案が作り終わり、READMEに書けばプルリクエストできるかなと思ったけど寝る時間になってしまった。

  • Rubyドリルやりたいと思いつつも最近溜まってしまっている💦

  • 当時は言われた通りにコマンド打つことに必死だったけど全体像の理解が進んだからこそ「これを実行するとどうなるのか」など本来の意味に注目してカリキュラム見れるようになった。

  • 今日会社の研修で学んだPDCAが良かった!(いろいろ活用できそう)

  • PDCAを回す」ことが目的ではなく、まずニーズから考えてそのためのPDCAを考えていくこと

  • 「意識」ではなく「仕組み」で解決するにはどうしたらいいのか改めて考えさせられたこと
  • 「全て」に対応してしまうと時間がないのでルールを決めて「選択と集中」をすること
    (例えば、あらかじめ「絶対落としてはいけない項目のチェックシート」を評価のために作り、実行と評価に差があったものだけアクションとして改善していくこと、各所からの問い合わせが多くて処理するのが大変な場合には30%は共通の問い合わせとして全体共有することとし残りは個別に問い合わせを受けるなどあらかじめ数値で基準を決めておくなど)



これから理解したいこと(覚書用)

  • Formオブジェクト(モデルの存在しないデータを更新)


  • エラー解決

  • カラムの追加方法、ロールバック

  • 環境変数(OSの知識)

  • 環境構築、バージョン対応

  • GitHub(他のアプリケーションと連携・自分に取り入れること)

  • Herokuのデプロイ方法 👉11/15・16学習 50%進む

  • README(DB設計だけでなく、全体について取扱説明書としてどんな風に書くと良いのか)

  • リファクタリング

  • データベースをインポート、エクスポート

  • Docker