Money-Rails Gem - 用符号显示人性化的钱

Money-Rails Gem - displaying humanised money with symbol

我正在尝试将 Money-Rails 与我的 Rails 4 应用程序一起使用。

我有一个具有如下属性的参与者模型:

t.boolean  "costs"
t.integer  "participation_cost_pennies",  default: 0,     null: false
t.string   "participation_cost_currency", default: "GBP", null: false

用户可以 select 他们的货币,这应该会覆盖默认的 GBP 设置。

我认为,我有:

<% if @project.scope.try(:participant).try(:costs) == true %>
           <%=  @project.scope.try(:participant).try(humanized_money_with_symbol :@participation_cost_pennies) %>

当我尝试上述操作时,视图显示为空白(不显示任何内容)。当我尝试在 google 浏览器中检查该元素时,我只能看到一个空的 span 标签,其中列出了该代码(什么都没有)。

我之前尝试过以下方法,它以美分显示价格(如 6 美元为 600 美元:

      <%=  "#{@project.scope.try(:participant).try(:participation_cost_pennies)} #{@project.scope.try(:participant).try(:participation_cost_currency)}" %>

谁能看出我做错了什么?我想显示 $4 而不是 400 cents/pennies.

谢谢

humanized_money_with_symbol 是一个帮助程序,因此您以 humanized_money_with_symbol @money_object 的形式使用它。

在您的情况下,这意味着您可以像这样使用它:

<%=  humanized_money_with_symbol @project.scope.try(:participant).try(:participation_cost_pennies) %>

所有 try 所做的就是在您链接的对象上调用一个方法,如果它不存在,则 return nil。您正在做的是调用 humanized_money_with_symbol 调用参与者上名为 :@participation_cost_pennies 的方法,该方法不存在,因此 try 最终 returning nil