У меня есть форма редактирования, которая позволяет пользователю изменять «единицы» («столовая ложка», «чашка», «ломтик» и т. Д.) Ингредиента. Однако при изменении единиц измерения вес также должен измениться, и стандартного преобразования не происходит. Таким образом, для каждого ингредиента существуют атрибуты для различных единиц, а также соответствующий вес для каждой единицы (описание1, описание2, описание3, ... для единиц и вес1, вес2, вес3, ... для весов).
Есть ли способ изменить вес в зависимости от того, какая единица измерения выбрана? Прямо сейчас у меня есть следующий код в моей форме для выбора единиц:
<div class="field">
<%= recipe_ingredient.label :unit %><br />
<% ingredient = Ingredient.find(@recipe_ingredient.ingredient_id) %>
<%= select(:recipe_ingredient, :unit, [ingredient.description1,
ingredient.description2, ingredient.description3, ingredient.description4,
ingredient.description5, ingredient.description6, ingredient.description7])
%><br />
</div>
Итак, мне нужно изменить recipe_ingredient.weight на основе базы данных Ingredients, в которой есть все описания юнитов и соответствующие веса. Должно ли это быть сделано в контроллере обновлений или с использованием скрытой формы или вообще в отдельном помощнике? Я играл с решениями, но пока не нашел ничего, что работает. Любые указатели в правильном направлении были бы великолепны.