В моем приложении RoR у меня есть таблица записей с флажком для каждой записи, чтобы пользователь мог выбирать и удалять несколько записей.Ruby on Rails: проверить, что пользователь выбрал флажок
Это работает с помощью следующего кода.
<table cellpadding="0" cellspacing="0" border="0" class="table table-striped table-bordered" id="example">
<thead>
<tr>
<th></th>
<th>First name</th>
<th>Surname</th>
<th>Email</th>
<th>Subscription</th>
<th>Emails Received</th>
<th colspan=3>Available Actions</th>
</tr>
</thead>
<%= form_tag destroy_multiple_contacts_path, method: :delete do %>
<tbody>
<% @contacts.each do |contact| %>
<tr class="odd gradeX">
<td><%= check_box_tag "contact_ids[]", contact.id %></td>
<td><%= contact.firstname %></td>
<td><%= contact.surname %></td>
<td><%= contact.email %></td>
<td><%= human_boolean(contact.subscription) %></td>
<td><%= contact.recipients.count %></td>
<td><%= link_to 'Show', contact_path(contact) %></td>
<td><%= link_to 'Edit', edit_contact_path(contact) %></td>
<td><%= link_to 'Destroy', contact_path(contact), method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</tbody>
</table>
<%= submit_tag "Delete Selected", {:class => "btn btn-danger btn-sm" } %>
<% end %>
Контроллер:
def destroy_multiple
Contact.destroy(params[:contact_ids])
redirect_to contacts_path
end
Маршруты:
resources :contacts do
collection do
delete 'destroy_multiple'
end
end
Однако это не хватает проверки и пользователи в настоящее время в состоянии нажать кнопку удаления без флажка выбирается - это заставляет систему к ошибке.
Возможно ли отобразить сообщение об ошибке, если пользователь нажимает кнопку «Удалить», не выбирая флажок или разрешая удалять пользователя, если они выбрали флажок?
@ KevalGohil и представлен, вероятно, самым простым и быстрым решением. вы, вероятно, можете получить fancier с java-скриптом, но я бы предложил добавить вещи в контроллер, возможно, намного проще и значительно быстрее. – BKSpurgeon