在我的模型中,我想比较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?" %>
有什么建议吗?提前谢谢!