xengineer’s diary

結果、メモ的な内容になっています。

railsのform_forはPOST/PATCHを使い分ける

普通に、こんなview書いたのです。

= form_for @organization, :url => {:action => 'contact'} do |f|
  .form-group
    = f.label :inquiry
    = f.text_area :inquiry, placeholder: '問い合わせ内容', class: 'form-control'
  = f.submit '送信', class: 'btn btn-default'

POSTしてくれると思って。
そしたら怒られた。

f:id:xengineer:20141020005212p:plain

PATCHなんてroutingねーよ!って。

あれ?そんなつもりなかったんだけど・・・

Chapter 9: Updating, showing, and deleting users | Ruby on Rails Tutorial (3rd Ed.) | Softcover.io

曰く、railsは、ActiveRecord::new_record? してみて、
既に存在してるオブジェクトだったら、PATCHにしちゃうんだって。

へーへーへーへー。
このサイト自体、rails4.2.0betaでやってるから、きっと4系はそうなのかな。
よくわからんけど、そういうこともあるらしい。
結構調べてしまった・・・