rails初心者です。
只今、ECサイトのようなものを作っています。
orderテーブル
:quantity
:price
量(:quantity)に応じて価格(:price)が変わる購入フォームを作りたく、
フロント部分はjqueryで実装できたのですが、表面的にしか動作しないので、
コントローラー内で一度保存した、@order.quantityの値を2倍にした数値を@order.priceに代入する流れになるのかな。と思っています。
思考がグチャグチャになっているのもあり、詰まってしまってます。
どなたかご教授願えたら幸いです。。よろしくお願いいたします
*フォームの方はform_forで書いていましたが、jqueryを使う際に、inputでしか導入できなかったので、inputを使ってます。
orders_controller.rb
def create
@order = Order.new(order_params)
if @order.save
order #発注のメソッドです
else
render 'index'
end
end
private
def order_params
params.require(:order).permit(:service, :quantity, :link, :price ,:agreement, :user_id)
end
index.html.erb
<div class="order"> <h1>試算してみる</h1> <form class="new_order" id="new_order" action="/orders" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="<%= form_authenticity_token %>" /> <p> <input placeholder="量(個数)を半角で入力してください" type="text" name="order[quantity]" id="order_quantity" /> </p>お支払い価格:<span id="order_price"></span>円
<!-- <input type="text" class="form-control" id="price" value="" readonly> --><p> <input type="submit" name="commit" value="注文する" class="submit_button" data-disable-with="注文する" /> </p> </div> </form> </div></div> -->
application.js
$(function() {
var $input = $('#order_quantity');
var $output = $('#order_price');
$input.on('input', function(event) {
var value = 2*$input.val();
$output.text(value);
});
});
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/08 08:16