現象
メルカリのようなフリマアプリを作成しており、商品の詳細ページでボタン1つで出品中、出品停止中の切り替えが出来るようにしたいと考えております。
しかし、下記のようにf.buttonにDBのカラムを持たせたところ、変数エラーが出てしまい原因が分かりません。
この点どのように解決すべきか、教えて頂きたいです。
環境
Rails 5.0.7.1
View
haml
1= link_to edit_product_path(@product.id), class: "btn-default btn-red" do 2 商品の編集 3%p or 4= form_for @product, url: previewChange_product_path(@product.id) do |f| 5 - if @product.status == "出品中" 6 = f.button "出品を一旦停止する", type: "submit", class: "btn-default btn-gray" 7 - else @product.status == "公開停止中" 8 = f.button "出品を再開する", :status, value: 0, type: "submit", class: "btn-default btn-red" 9= link_to "/products/#{@product.id}", class: "btn-default btn-gray", method: :delete do 10 この商品を削除する
Controller
ruby
1 def preview 2 @product = Product.find(params[:id]) 3 @item_images = @product.item_images 4 end 5 6 def previewChange 7 product = Product.new(status_params) 8 if product.update(status_params) 9 render :preview 10 else 11 render :preview 12 end 13 end 14 15 private 16 def status_params 17 params.require(:product).permit( 18 :status 19 ) 20 end
Routes
ruby
1Rails.application.routes.draw do 2 resources :products do 3 collection do 4 get 'buy', to: 'products#buy', as: 'buy' 5 end 6 member do 7 get :preview, to: 'products#preview', as: 'preview' 8 patch :previewChange, to: 'products#previewChange', as: 'previewChange' 9 end 10 end 11end
試したこと
https://teratail.com/questions/2578
こちらの記事も参考にして、f.buttonの変数を{:status, value: 0}と書いてみましたがうまくいきませんでした。
よろしくお願いします!
回答1件
あなたの回答
tips
プレビュー