首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有Rails 4实例货币的Money-Rails Gem

具有Rails 4实例货币的Money-Rails Gem
EN

Stack Overflow用户
提问于 2015-06-02 04:56:13
回答 3查看 1.2K关注 0票数 4

我试图在我的Rails 4应用程序中使用货币化(带有money-rails宝石)。

你如何允许用户只提交一个数字美元?当我输入100,我得到1美元,而不是100美元。

在我的模型中,我有:

代码语言:javascript
复制
monetize :participation_cost_pennies, with_model_currency: :participation_cost_currency

我使用实例货币,所以用户选择相关的货币。我的表格列有参与成本、参与成本便士和参与成本货币。

以我的形式,我有:

代码语言:javascript
复制
   <%= par.select :participation_cost_currency,
                             options_for_select(major_currencies(Money::Currency.table)),
                             label: false,
                             prompt: "Select your costs currency" %>

            <%= par.input :participation_cost, label: false, placeholder: 'Whole numbers only', :input_html => {:style => 'width: 250px; margin-top: 20px', class: 'response-project'} %>

在我看来,我有:

代码语言:javascript
复制
   <%= money_without_cents_and_with_symbol @project.scope.participant.participation_cost  %>

用表格中的“参与成本”代替“参与成本”,我得到了一个没有美分的数字,当我输入100时,我得到了10,000美元(因此,相反的问题是,它在我输入的末尾增加了200 s。)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-06-10 17:17:19

似乎,您在数据库中使用了price列,并要求用户输入完全相同的输入。这两个不同的设置器/getter。尝试以下几点:

代码语言:javascript
复制
# add migration
rename_column :products, :price, :price_cents


# set monetize for this field inside the model
class Product
  monetize :price_cents
end

# inside form use .price instead of .price_cents method
f.text_field :price

在这种情况下,用户以美元设置价格,并且它将自动转换为美分,以将其存储在price_cents字段中。

票数 2
EN

Stack Overflow用户

发布于 2015-06-10 11:09:43

money-rails创业板上,价格节省了以美分计,所以100美元输出1美元是正常的,因为它确实是100美分。100美元是10000美元。这是故意的,到避免浮点舍入误差

如果您想在应用程序中处理美元,您可以编写一个帮助函数将您的输入转换为美分。

票数 1
EN

Stack Overflow用户

发布于 2015-06-10 14:28:55

假设表中有price_cents列。您可以尝试使用此代码在monitize之前将美元金额转换为美分:

代码语言:javascript
复制
monetize :price_cents
before_save :dollars_to_cents

def dollars_to_cents
    #convert dollar to cents
    self.price_cents = self.price_cents * 100 
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30587638

复制
相关文章

相似问题

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