Как вставить новые разрывы строк, используя form_for с collection_check_boxes - PullRequest
0 голосов
/ 04 марта 2019

В одной точке моего кода я использую следующую форму form_for для отображения ряда тем, из которых пользователи могут выбирать.

 <%= form_for @user do |f| %> 
 <%= f.collection_check_boxes(:topic_ids, Topic.all.sample(50).each, :id, :topic_name) %> 
 <%= f.submit %>
 <% end %>

Когда он отображается на странице, все поля отображаются один за другим.другой.Как я могу разделить их так, чтобы в каждой строке был один флажок?

Ответы [ 3 ]

0 голосов
/ 04 марта 2019

Вы, конечно, можете визуализировать HTML внутри блока:

   <%= form_for @user do |f| %> 
      <%= f.collection_check_boxes :topic_ids, Topic.all.sample(50).each, :id, : topic_name do |b| %>
      <div  class="my-checkbox-wrapper">
        <%= b.label(class: "foo") do %>
          <%= b.object.topic_name %>
          <%= b.check_box(class: "bar") ></br>
       <%end%>
       <%= f.submit %>
    <%end%>

Вы можете взглянуть на этот пример

0 голосов
/ 04 марта 2019

Это очень широкий вопрос.Короче говоря, используя CSS.

Например, используя Bootstrap 4 :

<%= form_for @user do |f| %>
<div class="form-check">
  <%= f.collection_check_boxes :topic_ids, Topic.all.sample(50).each, :id, :topic_name, class: 'form-check-input' %>
</div>
<%= f.submit %>
<% end %>
0 голосов
/ 04 марта 2019

из ссылка здесь Возможно, можно настроить способ отображения элементов, задав блок методу, как показано ниже из приведенного выше кода

<%= form_for @user do |f| %> 
 <%= f.collection_check_boxes :topic_ids, Topic.all.sample(50).each, :id, :topic_name do |b| %> 
   <%= b.label(class: "check_box") do %>
     <%= b.check_box(class: "check_box") %>
     <%= b.object.topic_name %></br>
   <% end %>
 <% end %> 
 <%= f.submit %>
<% end %>
...