【发布时间】:2013-03-25 22:36:04
【问题描述】:
我正在使用 sinatra 编写一个小型 ruby 应用程序,并有一个文本输入作为输入,然后我使用 .to_f 方法将其转换为平面。但是,如果输入为空,.to_f 仍会将空字符串转换为 0 值。
我希望对其进行检查,因此如果输入为空白/空,它不会尝试将其转换为数字。
下面是我到目前为止的代码,我尝试将.empty? 添加到末尾,但它会引发方法错误。
weight = Weight.create(
:amount => params[:amount].to_f,
:user_id => current_user.id,
:created_at => Time.now
)
【问题讨论】:
-
而不是 0 值,您想从空输入中得到什么?
-
好吧,我猜是 nil,那么我希望 Datamapper 能够接受这一点,因为它有一个存在验证。所以我希望 ti 会抛出错误。
-
:amount => params[:amount].to_s.empty? ? nil : params[:amount].to_f,应该是有意义的。to_s消除了对 nil 值的测试,因为nil.to_s产生空字符串。
标签: ruby validation methods sinatra