読者です 読者をやめる 読者になる 読者になる

Satomi and Dogs

バーチャルな世界に住んでいた料理好きSatomiが美味しいご飯と犬と動物たちと牧草に囲まれた生活を目指す日記です

Rails4.x で simple_formを使って、create(登録)とupdate(編集)で同じformを使う際の注意

http://affexceed.art.coocan.jp/sea/unit_01/data/aff_data010.jpg

simple_formを使っています。

同じformを使ってcreateとupdateをすることが多いと思います。

症状

updateを叩いたつもりが、こんなエラーに出くわしました。

Routing Error No route matches [PATCH] “/hoge"

ちなみにroutingは

POST     /hoge(.:format)      hoge#create
PATCH    /hoge/:id(.:format)  hoge#update

当然両者で異なるわけですが、url的にはcreateの方を見ている?

#原因

<%= simple_form_for(@hoge, :url => hoges_path, :html => {:id => 'hoge_form', :multiport => true}) do |f| %>

このurlがダメです。

なので、

<%= simple_form_for(@hoge, :html => {:id => 'hoge_form', :multiport => true}) do |f| %>

削除して解決!