0

我需要一个用于多种目的的复选框。例如:我有一个文件列表。用户可以选择其中一些进行删除或分析。

我有以下代码,但它只接受一个 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%>

我也想要 submit_tag "Analyse"。我尝试过这样的事情,但当然它没有用。

 <% 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 %>
....

路线.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

提前致谢。

4

2 回答 2

0

您确实可以有多个提交按钮,您只需给它们命名:

<%= submit_tag "Delete selected", :name => 'delete' %>
<%= submit_tag "Analyse", :name => 'analyse' %>

然后,您可以检查commit控制器中包含的参数并采取相应措施:

if params[:commit] == 'delete'
  # delete things
elsif params[:commit] == 'analyse'
  # analyse things
end

表格的其余部分将照常提交。

于 2013-05-13T14:48:05.443 回答
0

这对我有用:

    <%= form_tag destroy_multiple_files_path, method: :get do %>
    <%= submit_tag "Delete selected", :name => 'delete' %>
    <%= submit_tag "Analyse", :name => 'analyse' %>

控制器:

if params[:commit] == 'Delete selected'
  # delete things
elsif params[:commit] == 'Analyse'
  # analyse things
end

路线.rb:

resources :files do
      collection do             
        get :destroy_multiple      
      end
    end
于 2013-05-13T19:24:32.277 回答