前提・実現したいこと
現在railsにてECサイトを作成中です。
ラジオボタンにてクレカ払い(0)、銀行振り込み(1)か選択できるようにして次ページにて選択した方を表示したいです。
ここに質問の内容を詳しく書いてください。
「0」が有効ではないので変換する記述方法がわからずにいます。
ご教授頂けると幸いです。
発生している問題・エラーメッセージ
ArgumentError in Public::OrdersController#create '0' is not a valid payment # binding.pry # params[:payment][:address] = params[:payment][:address].to_i @order = Order.new(order_params) #↑ここで引っかかる @order.save end ```~~打ち消し線~~ ### 該当のソースコード
orders_controller.rb
class Public::OrdersController < ApplicationController
def index
@customer = Customer.find(params[:id])
@customers = @customer.product
# @orders = Order.all
end
def new
@customer = current_customer
# @i = current_customer.cart_items
@all = Product.all
@address = Address.all
end
def show
end
def create
@customer = current_customer
# binding.pry
# params[:payment][:address] = params[:payment][:address].to_i
@order = Order.new(order_params)
@order.save
end
def confirm
@cart_items = current_customer.cart_items
@total = 0
@order = Order.new(order_params)
# @order = Order.find(params[:id])
end
def complete
end
private
def order_params
params.permit(:payment, :address)
end
end
orders/confirm.html.erb ```<h3>注文情報確認</h3> <br> <br> <div class="col-xs-8"> <table class="table table-hover"> <thead> <tr> <th>商品名</th> <th>単価(税込)</th> <th>数量</th> <th>小計</th> </tr> </thead> <tbody> </table> <% @total = 0 %> <% @cart_items.each do |cart_item| %> <td><%= attachment_image_tag @priduct, :image_id, size: "90x90", fallback: "cake.jpg" %> <%= cart_item.product.name %> <%= cart_item.product.price %> <% @total += cart_item.product.price %> <% end %> <th>送料</th> <th>800</th> </tr> <tr> <th>商品合計</th> <td><%= @total %></td> </tr> <tr> <th>請求額</th> <td><%= @total + 800 %></td> </tr> <br> <br> <br> <h4>支払い方法</h4> <%= @order.payment %> <h4>お届け先</h4> <%= @order.post_address %><%= @order.street_address %><br> <%= @order.address %><br> <div class="text-center"> <%= link_to "注文を確定する", orders_complete_path, class: 'btn btn-success' %> </div>
orders/new.html.erb <br> <h3 style="margin-left: 200px;">注文情報入力</h3><br> <%= form_with(model: @orders, local: true, url: orders_path, method: :post) do |f| %> <label style="margin-left: 130px;"><h4>支払い方法</h4></label><br> <label style="margin-left: 190px;"><%= f.radio_button :payment, 0, checked: "checked"%> クレジットカード</label><br> <label style="margin-left: 190px;"><%= f.radio_button :payment, 1 %> 銀行振込</label><br> <br> <label style="margin-left: 130px;"><h4>お届け先</h4></label><br> <label style="margin-left: 190px;"><%= f.radio_button :address,1,checked: "checked" %> ご自身の住所</label> <div><label style="margin-left: 220px;"> <%= current_customer.post_number %> <%= current_customer.street_address %> <br> <%= current_customer.last_name %><%= current_customer.first_name %></label> <div> <label style="margin-left:190px;"><%= f.radio_button :address ,2%> 登録済住所から選択</label><br> <div><label style="margin-left: 220px;"> <%= f.collection_select(:address, current_customer.addresses.all, :post_address, :street_address)%> <br> </div> <label style="margin-left: 190px;"> <%= f.radio_button :address,3 %> 新しいお届け先</label> <div style="display: flex; margin-left:15% ;"> <div style="display: flex flex-direction: column; flex-wrap: wrap; width: 180px;"> <%= f.label :"郵便番号(ハイフンなし)"%><br><br> <%= f.label :"住 所"%><br><br> <%= f.label :"宛 名"%><br><br> </div> <div style=" margin-left:20px; "> <%= f.text_field :postal_code %><br><br> <%= f.text_field :shipping_address ,size: "60" %><br><br> <%= f.text_field :name %><br><br> <%= f.submit "確認画面へ進む", class: 'btn btn-primary' %> <% end %>
試したこと
to_iが必要かと思われるのでコントローラーで記述してみました。
補足情報(FW/ツールのバージョンなど)
Rails 5.2.4.5
ruby 2.6.3
orders/new.html.erbからorders/confirrm.html.erbへ飛び、選択したほうを表示したいです。
ここにより詳細な情報を記載してください。
前提・実現したいこと
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
該当のソースコード
'0' is not a valid paymentエラー
### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー