Как динамически создать список флажков в Ruby on Rails? - PullRequest
0 голосов
/ 18 ноября 2018

Я получил список имен с помощью SQL-запроса (хранится в @name), и я могу просмотреть их в моем файле .html.erb.Есть ли способ динамически создавать уникальный check_box_tag ID каждого цикла?Например, можно ли ind [1] обновлять каждый цикл, чтобы предоставить уникальный идентификатор для каждого check_box_tag?

<% @names.each_with_index do |n, index| %>
    <% n.each_with_index do |value, ind| %>
        <div class="checkbox">
            <%= check_box_tag :ind[1], true, @tags %>
            <%= label_tag :ind[1], value[1] %>
        </div>
        <% end %>
<% end %>

В конечном итоге я хотел бы разрешить пользователям проверятькоробки рядом с именами интересов.Например, если мой SQL-запрос возвращает имена Алиса, Боб, Джон и Зак, и пользователь выбирает Боба и Джона, я хотел бы получить массив, который представляет следующее (так как серия логических 1 и 0 подходит):

{"Алиса" => "false", "Bob" => "true", "John" => "true", "Zach" => "false"}

Я нашел похожий вопрос, но мне не совсем удалось заставить его работать на меня: Ruby on Rails Forms: как создать CheckBox Table (или List)

1 Ответ

0 голосов
/ 18 ноября 2018

Мне удалось заставить его работать со следующим кодом:

<% @names.each_with_index do |n, index| %>
    <% n.each do |value| %>
        <div class="checkbox">
            <%= check_box_tag "name[#{index}]", true, @tags %>
            <%= label_tag "name[#{index}]", value[1] %>
        </div>
    <% end %>
<% end %>

Я использую <%= params.inspect %> на моей странице вывода для отображения результатов.Вот параметры после выбора второй и третьей опции:

<ActionController::Parameters {"utf8"=>"✓", "name"=>{"1"=>"true", "2"=>"true"}, "commit"=>"Save", "controller"=>"queries", "action"=>"custom_search"} permitted: false>

...