前提・実現したいこと
パラメーターを受け渡し、ordersテーブルの保存を行いたいです。
ordersテーブルのカラムはリファレンス型のuser_idとskin_idの二つのみです。
モデルの単体テストコードは成功しております。
発生している問題・エラーメッセージ
ActionController::ParameterMissing in OrdersController#create param is missing or the value is empty: order Parameters: {"authenticity_token"=>"n+UDKUpJfOpLQDuYlrD+YUjFOT9APvqfKso9w+3pUXKwlCXnWjsW5UDt6Xpn3P//yH6XodvDG9P4Kk0O7vK18g==", "commit"=>"購入する", "skin_id"=>"2"}
order_controllers
ruby
1class OrdersController < ApplicationController 2 before_action :authenticate_user!, only: [:index, :create] 3 before_action :find_skin, only:[:index, :create] 4 5 def index 6 @order = Order.new 7 end 8 9 def create 10 @order = Order.new(order_params) 11 if @order.save 12 redirect_to root_path 13 end 14 15 end 16 17 private 18 def find_skin 19 @skins = Skin.find(params[:skin_id]) 20 end 21 22 def order_params 23 params.require(:order).merge(user_id: current_user.id, skin_id: params[:skin_id]) 24 end 25 26end 27
orders/index.html.erb
ruby
1<div> 2<%= image_tag(url_for(controller: :skins, action: :show, id: @skins.id))%> 3 4<%= @skins.medal%> 5</div> 6 7<div> 8<%= form_with url: "/skins/#{@skins.id}/orders", model: @order, local: true do |f| %> 9<div> 10<%= f.submit "購入する" ,class:"send-btn" %> 11</div> 12<%end%> 13</div> 14
試したこと
アソシエーションを確認しましたが問題ない様に思われます。
引数やストロングパラメーターの間違いかと考え、試行錯誤してみましたが原因が分かりませんでした。
何処が間違っているのか何卒ご教授いただけますと幸いです。
必要なソースコードがありましたら全てお出し致します。
補足情報(FW/ツールのバージョンなど)
rails6
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/09 01:40
2020/12/09 03:39