知ってるとDRYに書けるよねっていうtips。
actionの引数のデフォ値をおく
def some_action
if param[:hoge].present?
@hoge = param[:hoge]
else
@hoge = "default_hoge"
end
end
っていう書き方しなくてもいいよっていう話
こうかけ↓DRY
def some_action(hoge="default_hoge")
@hoge = hoge
end
こうすると、param[:hoge]が存在する場合は、
hoge = param[:hoge]
param[:hoge]がnilになる場合に
hoge = "default_hoge"
になる。
ちなみに
formで、こんな感じでリクエストおくる場合
form_for(hoge_new, url:~~)
submitを押すと、paramへの入り方は
hogeのmodel名をhoge_modelとすると、
params: {~~, "hoge_model" => {hogeのattributesたち}}
てな感じで、formのsubmitのparamのキーにはmodel名が入る。
なので、そいつのデフォルト値を上みたいに定めたい時は、
def some_action(hoge_model="default_hoge_model")
@hoge = hoge_model
end
こんな感じになる。
知ってると、DRYにかけるよというtipsでした。