Rails условные options_for_select для полей формы - PullRequest
0 голосов
/ 05 октября 2019

Я пытаюсь создать форму, которая в зависимости от того, какие параметры_для_выбора они выбирают для предыдущего поля, она изменит параметры для следующего поля параметров_с_набора. В частности, это форма рецепта, в которой, если они выберут «объем», «вес» или «каждый», будут возвращаться различные типы измерений, такие как жидкие унции против унций и т. Д. Я довольно новичок в рельсах и неслишком хорошо знаю JavaScript, поэтому, пожалуйста, будьте конкретны в отношении того, куда идет сценарий, если это ваш ответ, потому что это, кажется, самый близкий вариант, который я могу найти, но не могу заставить его работать. Спасибо!

Мне бы хотелось:

new.html.erb

<%= f.fields_for :recipe_ingredients do |recipe_ingredient| %>
  <div>
    <%= label_tag :recipe_type, "Measurement Type" %>
    <%= select_tag :measurement_type, options_for_select(measurement_type) %>
    </div>
    <div>
    <%= label_tag :recipe_type, "Measurement" %>
    <% if 'measurement_type' == 'volume' %>
      <%= select_tag :measurement, options_for_select(measurement_volume) %>
    <% elsif 'measurement_type' == 'weight' %>
      <%= select_tag :measurement, options_for_select(measurement_weight) %>
    <% elsif 'measurement_type' == 'by_each' %>
      <%= select_tag :measurement, options_for_select(measurement_each) %>
    <% end %>
  </div>

recipes_helper.rb

  def measurement_volume
    [
      ['fluid Ounce'],
      ['cup'],
      ['pint'],
      ['quart'],
      ['gallon'],
    ]
  end

  def measurement_weight
    ...
  end
...