Я пытаюсь получить метод масштабирования рецепта в моем приложении, который будет возвращать некоторые более приятные измерения, адаптированные к количеству, которое служит употреблению.
Например, рецепт на 6 человек требует 1 стакан муки.Если вы масштабируете это для одного человека, 1/6 чашки муки - это 2,5 столовые ложки, что является более хорошим способом сказать это (зачем искать и пачкать мерную чашку, когда вы можете просто использовать ложку?).
Итак, я имею в таблице весов в БД вес в граммах, соответствующее измерение и количество.например.для муки
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
ищет самое близкое совпадение весов в базе данных, но мне нужно найти вес и меру, связанные с этой строкой, и в данный момент я получаю все строки
Мне нужно как-то ограничить nearest_weight
одной строкой, а затем получить эту строку, чтобы я знал вес и меру, и я надеюсь, что смогу сделать все это водин запрос