POSO
@POSO

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

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

1Answer

Your answer might help someone💌