我正在开发财务系统管理,奇怪的是我无法通过唯一的特定参数在数据库中找到记录。
我已经尝试通过其他参数查找相同的记录,但得到结果,但是如果我尝试通过特定参数查找,则得到“ nil”结果。
我得到的一些结果。
当我在数据库中运行搜索时,我得到了:
Trade.all
#<ActiveRecord::Relation [#<Trade id: 199, trade_value: 73.09, profit: 88.0, result: false, result_balance: nil, account_id: 83, user_id: 158, created_at: "2019-06-14 08:50:08", updated_at: "2019-06-14 08:50:08">]>
我在参数上得到了
trade_params
{:trade_value=>"73.09", :profit=>88, :result=>false, :result_balance=>nil, :account_id=>83}
所以,到目前为止一切都很好。但是当我尝试使用find_by trade_value参数时,总是得到零结果
Trade.find_by(trade_value: "73.09")
nil
Trade.find_by(trade_value: 73.09)
nil
Trade.find_by(trade_value: trade_params[:trade_value])
nil
但是当我尝试通过另一个参数查找时,我得到了预期的结果
Trade.find_by(profit: trade_params[:profit])
#<Trade id: 199, trade_value: 73.09, profit: 88.0, result: false, result_balance: nil, account_id: 83, user_id: 158, created_at: "2019-06-14 08:50:08", updated_at: "2019-06-14 08:50:08">
因此,当我通过trade_value参数进行搜索时,我希望得到一个有效的结果。
有人知道如何解决吗?
谢谢!
编辑:@AbM答案对我有所帮助。参考:how to find float values in mysql database with rails