0

我试图在我的 Rails 4 应用程序中使用 Money-Rails。

我有一个参与者模型,其属性如下:

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

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

我的观点,我有:

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

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

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

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

谁能看到我做错了什么?我想显示 4 美元而不是 400 美分/便士。

谢谢

4

1 回答 1

1

humanized_money_with_symbol是一个助手,所以你在表单中使用它humanized_money_with_symbol @money_object

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

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

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

于 2015-05-10T02:45:19.693 回答