获取与mysql中最近的结果关联的行

获取与mysql中最近的结果关联的行,mysql,ruby-on-rails-3,Mysql,Ruby On Rails 3,我正在尝试在我的应用程序中获得一个配方缩放方法,该方法将返回一些更好的测量值,以适应使用量 例如,6个人的食谱需要1杯面粉。如果你为一个人衡量,一杯面粉的1/6等于2.5汤匙,这是一个更好的说法(当你可以只用汤匙的时候,为什么要寻找并弄脏量杯?) 因此,我在db a权重表中有以克为单位的权重,相应的度量和数量。 为了面粉 amount | measure | grams ----------+-------------+--------- 1 | cup

我正在尝试在我的应用程序中获得一个配方缩放方法,该方法将返回一些更好的测量值,以适应使用量

例如,6个人的食谱需要1杯面粉。如果你为一个人衡量,一杯面粉的1/6等于2.5汤匙,这是一个更好的说法(当你可以只用汤匙的时候,为什么要寻找并弄脏量杯?)

因此,我在db a权重表中有以克为单位的权重,相应的度量和数量。 为了面粉

 amount   |   measure   |   grams
----------+-------------+---------
   1      |    cup      |    160
   1      |    tbsp     |     10
   1      |    pound    |    454
在我的应用程序(最好使用activerecord)中,我试图获得配方中每种成分的最佳测量值

@ingredients = Recipe.select('food_names.name,
                   ABS(ingredients.grams-weights.grams) as nearest_weight,
                   weights.amount,
                   weights.measure'
               ).joins(
                   {:ingredients=> :food_name},
                   {:food_names=> :weights}
               ).where(
                   "recipes.recipe_id", :recipe_id
               ).order(
                   :nearest_weight
               ).reverse_order
nearest_weight
在数据库中搜索最接近的权重匹配,但我需要找到与该行关联的权重和度量值,目前,我正在返回所有行

我需要做的是以某种方式将
最接近的_weight
限制为一行,然后获取该行,以便我知道权重和度量值,我希望我可以在一个查询中完成这一切