パRails🚂
rails s
できない可能性が高いです。
第二章の68p、「バリデーションと「!」付きのメソッド」から
71pの途中。
71pの「コールバックポイントの整理」から。🚂
ActiveRecord
には保存操作を伴うメソッドがいくつか存在していて、これらのメソッドには「!」を伴うメソッドがついとなって存在する。例)create
↔️create!
、save
↔️save!
など。@shodan
validates
、独自のカスタムバリデーションをしたいときはvalidate
メソッドにブロックを渡す@hiromisugie
careate!
、save!
、upodate!
など!
のつくものはバリデーション失敗時に例外が起こるcareate
、save
、upodate
など!
のつかないものは例外を起こさないbefore_validation
などのコールバックは、レコードを作成・保存する一連の流れの間に処理を挟むことができて便利。71pの「コールバックポイントの整理」から
77pのコラムまで。
77p 2-3 コントローラーの役割から。🚂
delete
やupdate_*
などには実行されないらしいので気を付けたいとおもいます。ActiveRecord::Enum
の項で色々と動かしていただき確認できたのが楽しかったです。ActiveRecord::Enum
はrails4.1から導入されたものでその前はenumerize
というものだったらしい。@hiromisugie
:if
や:unless
で起動条件を指定することができる。destroy
はAvtiveRecordでモデルを介してDBを操作するけど、delete
は直接SQLを実行してデータを削除する(ので、コールバックが効かない)!
付きのメソッドを使うとそのenum値へ更新する(DBにも反映される)enumerize
というgemがあるgit log --graph --oneline
でlogが綺麗に見られる!@shodan
:if
や:unless
で特定条件の際にコールバックをかけるようなオプションがある。delete
やupdate_*
は普通に使いそうなので注意。enum
型という値の管理方法がある。sales_status
なら、sales_status
とnot_sales_status
の2つが追加される。@moegi29
?
で問い合わせ、!
で更新、 .sales_statusと書くと文字列の値を取得できる。:if
と:unless
で起動の条件を指定できるgit log --graph --oneline
で見やすい!@hiromisugie
77p 2-3 コントローラーの役割から
84p 2-3-2の終わりまで
PR: https://github.com/KMZ0209/Perfect_Ruby_on_Rails_Ch2/pull/9
84p 2-3-3 ルーティングとリソースから🚂
@hiromisugie
curl
のコマンド、destroyアクションをターミナルで実行する方法ということでメンターさんに教えてもらったことがある記憶があるけど完全に忘れていたので、試してみたいbefore_action :set_hoge
があって後ろの方にset_hoge
メソッドが定義してあるというやつ、よく見る!再確認できてよかったaround-before
とaround-after
というかんじで処理自体の前か後になるのだから、before_action
とafter_action
で代用できそうだけど、見かけたら使い所のコツを学んでいきたい@shodan
/books/:id
へのルーティングの:id
のパラメータ部分は、コントローラに渡ってきたparams
オブジェクトの:id
キーと連携している。params
から取得できる。/books/1
の1の部分はroutes.rb
の:id
と対応しparamsオブジェクトを経由して取得することができる。skip_before_action
などによってskipできる。/books/1
の「1」の部分はroutes.rbの[:id]と記述した部分に対応するので、paramsオブジェクトを通して取得できる