前提・実現したいこと
Ruby on Railsでフリーマーケットアプリを作っています。
Showアクションのページ(商品詳細)から
Editアクションページ(商品編集)に遷移し
そこで入力内容を変更し、「変更する」ボタン(Updateアクション)を押すと
Showアクションのページ(商品詳細)に戻り、かつ編集内容が反映されている
という状態にしたいのですが、できません。
Updateビューを作成せず、実現したいです。
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
エラーメッセージはでませんが、編集内容が反映されません
該当のソースコード
Ruby
1 2ファイル名: routes.rb 3 4Rails.application.routes.draw do 5 devise_for :users 6 root to: 'products#index' 7 # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html 8 resources :users, only: [:show, :edit, :update] 9 resources :products 10 11end 12 13———————————————— 14 15 16ファイル名: products_controller.rb 17 18 def edit 19 @product = Product.find(params[:id]) 20 @user = User.find(params[:id]) 21 end 22 23 def update 24 @product = Product.find(params[:id]) 25 @user = User.find(params[:id]) 26 if @product.save 27 redirect_to product_path, notice: '' 28 else 29 #updateを失敗すると編集ページへ 30 render 'edit' 31 end 32 end 33 34 private 35 def product_params 36 params.require(:product).permit(:title, :image, :text, :price) 37 end 38end 39 40——————————————————————— 41 42ファイル名: products/edit.html.haml 43 44 45%h1 商品の情報を入力 46.li 47出品画像 48= @product.image 49.li 50商品名 51= form_for(@product) do |f| 52 = f.text_field :title, class: '', placeholder: '' 53 .field 54 商品の説明 55 .field 56 = f.text_field :text, class: '', placeholder: '' 57 .li 58 = f.submit "変更する", class: '' 59 .li 60 キャンセル 61 62 63
試したこと
ファイル名:products_controller.rb
の
if @product.save
の箇所を
if @product.update
に変更したり、
if @product.save redirect_to product_path, notice: '' else #updateを失敗すると編集ページへ render 'edit' end
の箇所を
Editアクションのメソッドに移動してみたりしました。
補足情報(FW/ツールのバージョンなど)
開発環境
- Ruby 2.5.1
- Rails 5.2.3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/02 05:40