在我的控制器中,我有以下内容:
@destinations = Location.all.where("current_forecast like ?", params[:weather])
@destinations.sort_by{ |d|
d.distance_to([params[:latitude], params[:longitude]])
}.first
这引发了Float与Float的比较失败"错误。但是,如果我在控制台中输入以下内容:
@destinations = Location.all.where("current_forecast like ?", params[:weather])
@destinations.sort_by{ |d|
d.distance_to([34, -112])
}
我没有收到此错误。为什么呢?
答案 0 :(得分:0)
params
哈希中的值是字符串,需要转换为浮点数。答案只是将distance_to
的参数更改为浮点数:
d.distance_to([params[:latitude].to_f, params[:longitude].to_f])