Rails:BigDecimal与String的比较失败

时间:2016-03-09 08:20:30

标签: ruby-on-rails

在我的模型中,我想比较2个BigDecimals。在用户表中,我使用了" maxdiscount"列。 (输入十进制)。然后应该将该值与" discount"的值进行比较。 (也是十进制类型)。只有当折扣小于或等于用户输入的值时才应保存折扣。

这是我的代码段:

before_save :discount

def discount=(discount)
 if discount.present?
  if current_user.maxdiscount <= discount
    discount = discount.gsub(",", ".")
    self[:discount] = discount
  end
 end
end

你可能会问:为什么选择gsub?这是因为该应用程序将被国际用户使用(英语和德语)。两者都有单独的分隔符,所以我把它带到正确的格式(&#34;。&#34;作为分隔符)。

每当我想保存表单时,我都会收到错误:

  

BigDecimal与String失败的比较

并且这一行(见上面的代码)突出显示:

  

if current_user.maxdiscount&lt; = discount

这个btw是我视图中的表单字段:

<%= f.text_field :discount, class: "form-control", placeholder: "Want to grant a Discount?" %>

有什么建议吗?提前谢谢!

0 个答案:

没有答案