現在、ECサイトを作成中で、注文確認画面を作っているのですが、confirmアクションに情報を渡すときに登録済の住所から選択して、その値を送るときに理想としてはid=1の住所を選ぶとparams[:order][:order_address]に値が入り、それをto_iで数字にし、Address.findでそのAddressを得ようと思っているのですが、params[:order][:order_address]=''となり、to_iとしても0となり、id=0のAddressは探せませんというエラーが出てしまいます。```
order.controller.rb def confirm @order = Order.new @cart_items = current_end_user.cart_items @order.payment = params[:order][:payment] if params[:order][:address_option] == "0" @order.postal_code = current_end_user.postal_code @order.order_address = current_end_user.address elsif params[:order][:address_option] == "1" @sta = params[:order][:order_address].to_i binding.pry @order_address = Address.find(@sta) @order.postal_code = @order_address.postal_code @order.order_address = @order_address.address @order.dear_name = @order_address.dear_name elsif params[:order][:address_option] == "2" @order.postal_code = params[:order][:postal_code] @order.order_address = params[:order][:order_address] end end
new.html.erb <%= form_with model: @order, url: end_users_confirm_path, method: :post,local: true do |f| %> <%= f.label :payment, "支払い方法" %> <br> <%= f.radio_button :payment,:クレジットカード, checked: "checked" %> <%= f.label :payment, "クレジットカード" %> <br> <%= f.radio_button :payment, :銀行振込 %> <%= f.label :payment, "銀行振込" %> <br> <%= f.label :address, "お届け先" %> <br> <%= f.radio_button :address_option, 0, checked: "checked" %> <%= f.label :order_address, "ご自身の住所" %> <%= @end_user.postal_code %> <%= @end_user.address %> <br> <%= f.radio_button :address_option, 1 %> <%= f.label :order_address, "登録済住所から選択" %> <%= f.collection_select :order_address , current_end_user.addresses, :id, :address , :include_blank => "選択してください" %> <br> <%= f.radio_button :address_option, 2 %> <%= f.label :order_address, "新しいお届け先" %> <br> <%= f.label :postal_code, "郵便番号" %> <%= f.text_field :postal_code %> <br> <%= f.label :order_address, "住所" %> <%= f.text_field :order_address %> <br> <%= f.submit "確認画面へ進む" , class:"btn btn-primary" %> <% end %>
回答2件
あなたの回答
tips
プレビュー