Rails - установка атрибута модели на основе ввода формы - PullRequest
0 голосов
/ 14 июля 2011

У меня есть форма редактирования, которая позволяет пользователю изменять «единицы» («столовая ложка», «чашка», «ломтик» и т. Д.) Ингредиента. Однако при изменении единиц измерения вес также должен измениться, и стандартного преобразования не происходит. Таким образом, для каждого ингредиента существуют атрибуты для различных единиц, а также соответствующий вес для каждой единицы (описание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, в которой есть все описания юнитов и соответствующие веса. Должно ли это быть сделано в контроллере обновлений или с использованием скрытой формы или вообще в отдельном помощнике? Я играл с решениями, но пока не нашел ничего, что работает. Любые указатели в правильном направлении были бы великолепны.

...