お世話になっております。
現在、チーム開発でフリマアプリを作成しております。
そこで、商品編集機能を実装しているのですが、コントローラーがうまく機能しません。
編集が画面にて、submitの更新するをクリックすると、内容が更新され、rootパスに飛ぶ挙動が期待されるべきなのですが、リロードされ、URLが下記の様になります。
http://localhost:3000/items/1/edit?utf8=%E2%9C%93&_method=patch&authenticity_token=buicDNKYr1KCEvZpzfB%2B2xu8OGGGS2G%2FQ4m%2BDiCQxZ8eJllVj9kvhYSk0koTqH9rpytE%2FuC5BHRdzSwuKHIQ4Q%3D%3D&item%5Bcategory_id%5D=8&item%5Bbrand%5D=&item%5Bname%5D=%E3%81%82%E3%81%82%E3%81%95%E3%81%82&item%5Bitem_explanation%5D=111111&item%5Bshippingarea_id%5D=1&item%5Bitemcondition_id%5D=1&item%5Bshippingcost_id%5D=1&item%5Bshippingday_id%5D=1&item%5Bshippingmethod_id%5D=1&item%5Bprice%5D=1&item%5Bitem_imgs_attributes%5D%5B0%5D%5Bimage%5D=&item%5Bitem_imgs_attributes%5D%5B0%5D%5B_destroy%5D=0&item%5Bitem_imgs_attributes%5D%5B0%5D%5Bid%5D=1&item%5Bitem_imgs_attributes%5D%5B1%5D%5Bimage%5D=&commit=%E6%9B%B4%E6%96%B0%E3%81%99%E3%82%8B
更新するを押す前は下記のURLです
http://localhost:3000/items/1/edit
データも更新されておらず、notice: '編集できませんでした'と設定しているのですが、出てこないため、updateアクションは機能していないと思います。
items_controller.rb
def edit @item = Item.find(params[:id]) end def update if @item.user_id == current_user.id if @item.update(item_params) redirect_to root_path, notice:'更新しました' else redirect_to(edit_item_path, notice: '編集できませんでした') end end end
#仮説とやったこと
editアクションの@item = Item.find(params[:id])下にbinding.pryをかけ、編集したところ、編集内容は取得できました。
paramsと打つと、
文末に
permitted: false>
という風に表示されています。
(これの原因はよくわかっていません。)
しかし、それ以降のupdateの記述に間違いがあるとは思えず、困惑しております。
この記述で間違っていないと思うのですが、ご教授いただけると幸いです。
よろしくお願い致します。