gpt4 book ai didi

javascript - Ruby - 如何提取字符串中的 £ 符号以进行浮点转换

转载 作者:行者123 更新时间:2023-12-03 06:19:59 26 4
gpt4 key购买 nike

我正在使用 Ruby On Rails 构建一个事件应用程序。我正在拼命寻找一种方法来处理用户的多个预订 - 这样他们就可以选择预订多个空间(目前他们一次只能预订一个),并且应用程序会将该数字转换为正确的价格( 10 张门票每张 10 英镑,则票价为 100 英镑等)。在 SO 和 Google 的帮助下,我研究了在 Bookings.rb 模型中使用的多种方法,这是最新的 -

def total_amount
quantity.to_i * strip_currency(event.price)
end

private

def strip_currency(amount = '')
amount.to_s.gsub(/[^\d\.]/, '').to_f
end

我也尝试过这个 -

    def total_amount
self.quantity.to_i * self.event.price.to_f
end

当我点击付款页面时,两种方法都返回 0(零)。它基本上可以归结为英镑符号(或者我错过了其他东西吗?)。有人建议这个方程可能有效 -

string[0..-1].to_f

但是,我对此还很陌生,不确定如何或在何处将其集成到我的 MVC 代码中以使其正常工作。我没有使用货币化 gem ,我使用的是钱轨,但必须有一种简单的方法/代码行可以允许此方法起作用。

这是我的 booking_controller -

class BookingsController < ApplicationController

before_action :authenticate_user!

def new
@event = Event.find(params[:event_id])
@booking = @event.bookings.new(quantity: params[:quantity])
@booking.user = current_user
end

def create
@event = Event.find(params[:event_id])
@booking = @event.bookings.new(booking_params)
@booking.user = current_user

Booking.transaction do
@event.reload
if @event.bookings.count > @event.number_of_spaces
flash[:warning] = "Sorry, this event is fully booked."
raise ActiveRecord::Rollback, "event is fully booked"
end
end

if @booking.save
# CHARGE THE USER WHO'S BOOKED
# #{} == puts a variable into a string
Stripe::Charge.create(
amount: @event.price_pennies,
currency: "gbp",
card: @booking.stripe_token,
description: "Booking number #{@booking.id}")
flash[:success] = "Your place on our event has been booked"
redirect_to event_path(@event)
else
flash[:error] = "Payment unsuccessful"
render "new"
end

if @event.is_free?

@booking.save!
flash[:success] = "Your place on our event has been booked"
redirect_to event_path(@event)
end
end

private

def booking_params
params.require(:booking).permit(:stripe_token, :quantity)
end
end

我是不是用 Ruby 找错了树——我应该使用 javascript 来实现这个目的吗?

最佳答案

您已经按预期工作的代码

调试并检查您获得的 quantityevent.price

amount = '£10'
quantity = 2

strip_currency(amount)
#=> 10.0

quantity.to_i * strip_currency(amount)
#=> 20.0

也许您没有获得正确的金额或数量

关于javascript - Ruby - 如何提取字符串中的 £ 符号以进行浮点转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38920040/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com