パRails🚂
rails s
できない可能性が高いです。
@sadanora
@motohiro-mm
第二章の68p、「バリデーションと「!」付きのメソッド」から
71pの途中。
71pの「コールバックポイントの整理」から。🚂
@sharoa
ActiveRecord
には保存操作を伴うメソッドがいくつか存在していて、これらのメソッドには「!」を伴うメソッドがついとなって存在する。例)create
↔️create!
、save
↔️save!
など。@shodan
validates
、独自のカスタムバリデーションをしたいときはvalidate
メソッドにブロックを渡す@sadanora
@hiromisugie
careate!
、save!
、upodate!
など!
のつくものはバリデーション失敗時に例外が起こるcareate
、save
、upodate
など!
のつかないものは例外を起こさないbefore_validation
などのコールバックは、レコードを作成・保存する一連の流れの間に処理を挟むことができて便利。@motohiro-mm
@moegi29
@moegi29
@sadanora
71pの「コールバックポイントの整理」から
77pのコラムまで。
77p 2-3 コントローラーの役割から。🚂
@sharoa
delete
やupdate_*
などには実行されないらしいので気を付けたいとおもいます。ActiveRecord::Enum
の項で色々と動かしていただき確認できたのが楽しかったです。ActiveRecord::Enum
はrails4.1から導入されたものでその前はenumerize
というものだったらしい。@odentakashi
@hiromisugie
:if
や:unless
で起動条件を指定することができる。destroy
はAvtiveRecordでモデルを介してDBを操作するけど、delete
は直接SQLを実行してデータを削除する(ので、コールバックが効かない)!
付きのメソッドを使うとそのenum値へ更新する(DBにも反映される)enumerize
というgemがあるgit log --graph --oneline
でlogが綺麗に見られる!@shodan
:if
や:unless
で特定条件の際にコールバックをかけるようなオプションがある。delete
やupdate_*
は普通に使いそうなので注意。enum
型という値の管理方法がある。@sadanora
sales_status
なら、sales_status
とnot_sales_status
の2つが追加される。@moegi29
?
で問い合わせ、!
で更新、 .sales_statusと書くと文字列の値を取得できる。@motohiro-mm
:if
と:unless
で起動の条件を指定できるgit log --graph --oneline
で見やすい!@hiromisugie
@motohiro-mm
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
から取得できる。@sadanora
/books/1
の1の部分はroutes.rb
の:id
と対応しparamsオブジェクトを経由して取得することができる。skip_before_action
などによってskipできる。@cellotak
/books/1
の「1」の部分はroutes.rbの[:id]と記述した部分に対応するので、paramsオブジェクトを通して取得できる@moegi29
@motohiro-mm
@odentakashi
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing