param is missing or the value is empty: orderがなかなか解決しません
解決したいこと
param is missing or the value is empty: order
をクリアしたいです。
まずエラー画面のパラメーターは
{"authenticity_token"=>"[FILTERED]",
"payment_id"=>"1",
"cart_item"=>"#<CartItem::ActiveRecord_AssociationRelation:0x00007fe432e98068>",
"user_id"=>"1",
"total"=>"50000",
"commit"=>"オーダー",
"format"=>"1"}
となっており必要なデータは送信できているように見えます。
どこかに重複データがあるのか、そもそも送信できていないのかわかりません。
送信画面
<%= form_with(model: @order, url: order_create_path(current_cart), local: true) do |f| %>
<h2><%= "総額:#{@total}円" %></h2>
<h2><%= "支払い方法" %></h2>
<% if user_signed_in? && current_user.corporpriv.id == 1 %>
<%= f.collection_select(:payment_id, Payment.all, :id, :name, {}, {class:"select-box", id:"order_payment"}) %>
<% else %>
<%= f.collection_select(:payment_id, Payment.all, :id, :name, {disabled: [2,3]}, {class:"select-box", id:"order_payment"}) %>
<% end %>
<%= hidden_field_tag :cart_item, @cart_items %>
<%= hidden_field_tag :user_id, @user.id %>
<%= hidden_field_tag :total, @sougakutotal %>
<%= f.submit "オーダー"%>
<% end %>
コントローラー(オーダーのクリエイトから)
def create
@cart_items = current_cart.cart_items.includes([:item])
@total = @cart_items.inject(0) { |sum, item| sum + item.sum_of_total }
@order = current_user.orders.new(order_params)
@user = User.find(current_user.id)
if @order.save
@cart_items = current_user.cart_items.all
@cart_items.each do |cart_item|
@order.user_id = current_user.id
@order.item_id = cart_item.item.id
@order.rentalday = cart_item.rentalday
@order.backday = cart_item.backday
current_user.cart_items.destroy_all
end
else
redirect_to my_cart_path
end
end
private
def order_params
params.require(:order).permit(:sougakutotal, :payment_id, :rentalday, :backday, :user_id, :item_id)
end
end
cart_itemの中にはrentalday, :backday,:item_idのデータが入っています
自分で試したこと
データ送信ができていないのかなど確認しました
0