gpt4 book ai didi

ruby-on-rails - 在货币参数中允许逗号或点

转载 作者:行者123 更新时间:2023-12-04 17:48:47 25 4
gpt4 key购买 nike

我的模型中有这个:

  monetize :advance_amount_cents, allow_nil: true
monetize :rental_amount_cents, allow_nil: true

我使用 AutoNumeric 来显示货币。它在参数中像这样将其发送回 Controller :

'rental_amount' = "2050.12"

从模型返回这个错误:

activerecord.errors.models.rental_period.attributes.rental_amount.invalid_currency

当我可以用逗号而不是点作为十进制发送时,它会接受货币。这里的最佳做法是什么?理想情况下,我希望所有货币化的属性都接受任何作为小数分隔符、逗号或点的内容。 Monetize 似乎也是这样做的:

pry(main)> Monetize.parse "2050.12"
=> #<Money fractional:205012 currency:USD>
pry(main)> Monetize.parse "2050,12"
=> #<Money fractional:205012 currency:USD>

这是完美的。我如何配置我的模型(或一般的货币化 gem)以接受两者作为参数(点或逗号)。

最佳答案

希望这对某人有用。

型号:

monetize :rental_amount_cents, allow_nil: true

查看:

  = f.input :rental_amount, label: 'Rental amount' do
.input-group
= text_field_tag :rental_amount, @rental_period.rental_amount, class: 'form-control', id: "#{@rental_period.new_record? ? '' : (@rental_period.id.to_s + '_')}rental_amount_rate_rendered"
= f.hidden_field :rental_amount, class: 'rate-input'
%span.input-group-addon €

Javascript 设置:

$('[id$=rate_rendered]').add('.flex-rate').autoNumeric('init', settings.money_nosign).on('keyup', function() {
var $hid;
$hid = $(this).parent().find('input.rate-input');
if ($(this).autoNumeric('get') !== '') {
return $hid.val($(this).autoNumeric('get').replace('.', ','));
} else {
return $hid.val(0);
}
});

在我的设置中(只有相关部分:

window.settings = {
money_nosign: {
aDec: ',',
aSep: '.',
vMin: '-999999999.99'
}
};

关于ruby-on-rails - 在货币参数中允许逗号或点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46754895/

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