Мне нужно иметь один check_box для нескольких целей. Например: у меня есть список файлов. Пользователь может выбрать некоторые из них для удаления или анализа.Ruby on Rails: одна check_box для нескольких submit_tag
У меня есть следующий код, но он принимает только один submit_tag «Удалить выбранный».
<% if @files%>
<%= form_tag destroy_multiple_files_path, method: :delete do %>
<%= submit_tag "Delete selected" %>
<% @files.each do |file| %>
<% if (arraydb.file=="no") %>
<p><td> <%= check_box_tag "files[]", file.id %></td><%= file.name %></p>
<% else %>
<div class="my_profile_info">
<p><td> <%= check_box_tag "files[]", file.id %></td> <%= file.name %></p>
<td class="Info">
<a href="<%=file.info%>" target ="_blank" class= "btn btn-mini btn-info">Info</a>
</td>
</div>
<% end %>
<%end%>
<%end%>
<%else%>
<%end%>
Я бы хотел, Я пробовал что-то подобное, но, конечно, это не сработало.
<% if @files%>
<%= form_tag destroy_multiple_files_path,analyse_multiple_files_path method: :delete,method:post do %>
<%= submit_tag "Delete selected" %>
<%= submit_tag "Analyse" %>
<% @files.each do |file| %>
<% if (arraydb.file=="no") %>
<p><td> <%= check_box_tag "files[]", file.id %></td><%= file.name %></p>
<% else %>
....
routes.rb:
resources :files do
collection do
delete 'destroy_multiple'
end
end
контроллер:
def destroy_multiple
@files = File.find(params[:files])
@files.each do |item|
item.destroy
end
end
Спасибо заранее.
Если я передать переменную: имя, то я должен поймать его в контроллер также с параметрами [: name], не так ли? Я попробовал ваш вариант и вариант с: name вместо: commit. Он ничего не удаляет. Может ли быть связано с удалением «destroy multiple» на моих маршрутах? Я обновил свой вопрос – Tonja