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