У меня есть 2 scaffolds Роль (имя: строка), Permission (name: string) Я создал связь между ними. Итак, теперь я могу легко разрешать разрешения для ролей: Role.permissions.Дополнительные поля в форме
Проблема заключается в том, чтобы создать форму для новой роли, потому что в дополнение к полю «имя» я хотел бы добавить туда список разрешений (флажки).
Это то, что мне удалось сделать до сих пор. (Сейчас я использую текстовое поле вместо флажка)
<%= form_for(@role) do |f| %>
<% if @role.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@role.errors.count, "error") %> prohibited this role from being saved:</h2>
<ul>
<% @role.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="list_of_fields">
<div class="field">
<%= text_field_tag :myVariable] %>
</div>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
Точно я говорю об этом куске кода:
<div class="list_of_fields">
<div class="field">
<%= text_field_tag :myVariable] %>
</div>
</div>
Это производит:
Параметры: {» utf8 "=>" â ", " authenticity_token "=>" MdS0VkLAxGoZM8P71H0a9M54CpMt8DnnwSp75UVGtqE = ", " role "= {" name "=>" abc "}," myVariable "=>" xyz "," commit "=>" Создать роль "}
Мне не нравится это решение, потому что, если кто-то выбирает определенное имя разрешения, он может потерпеть неудачу (например, «совершить»).
Я хотел бы закрыть все эти дополнительные поля внутри хеша. Каков правильный способ сделать это?