首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >允许通货参数中的逗号或点

允许通货参数中的逗号或点
EN

Stack Overflow用户
提问于 2017-10-15 12:13:32
回答 1查看 413关注 0票数 3

我的模特儿里有这个:

代码语言:javascript
复制
  monetize :advance_amount_cents, allow_nil: true
  monetize :rental_amount_cents, allow_nil: true

我使用AutoNumeric来显示货币。它把它发送回控制器,像这样,在params中:

代码语言:javascript
复制
'rental_amount' = "2050.12"

它从模型中返回此错误:

代码语言:javascript
复制
activerecord.errors.models.rental_period.attributes.rental_amount.invalid_currency

它接受货币时,我可以让它用逗号而不是小数点发送。这里最好的练习是什么?理想的情况下,我希望所有的属性,货币化,接受任何小数分隔符,逗号或点。这也是赚钱的方式:

代码语言:javascript
复制
pry(main)> Monetize.parse "2050.12"
=> #<Money fractional:205012 currency:USD>
pry(main)> Monetize.parse "2050,12"
=> #<Money fractional:205012 currency:USD>

这太完美了。我如何配置我的模型(或货币化创业板在一般情况下)接受这两个参数(点或逗号)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-29 09:29:33

希望这对某人有用。

型号:

代码语言:javascript
复制
monetize :rental_amount_cents, allow_nil: true

查看:

代码语言:javascript
复制
  = 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设置:

代码语言: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);
  }
});

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

代码语言:javascript
复制
window.settings = {
  money_nosign: {
    aDec: ',',
    aSep: '.',
    vMin: '-999999999.99'
  }
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46754895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档