Ho un problema con l'eliminazione multipla utilizzando le caselle di controllo. quando sto cancellando più record ottiene gli ID per le checkbox ma sta passando un nome di metodo come parametro e mi mostra un errore.Rails 3 distrugge più record tramite le caselle di controllo
qui è il mio codice,
**In my Controller method :**
def destroy
@ticket = current_user.tickets.find(params[:ticket_ids])
@ticket.destroy
respond_to do |format|
format.html { redirect_to tickets_url }
format.json { head :no_content }
end
end
def destroy_multiple
Ticket.destroy(params[:tickets])
respond_to do |format|
format.html { redirect_to tickets_path }
format.json { head :no_content }
end
end
**In my index.html.erb**
<%= form_tag destroy_multiple_tickets_path, method: :delete do %>
.
.
<td class="table-icon">
<%= check_box_tag "ticket_ids[]", ticket.id %>
</td>
.
.
<%= submit_tag "Delete selected" %>
**In routes.rb**
resources :tickets do
collection do
delete 'destroy_multiple'
end
end
mi mostra questo errore ::::
Couldn't find Ticket with id=destroy_multiple [WHERE "tickets"."user_id" = 1]
passaggi arguement ::::
{"utf8"=>"✓",
"_method"=>"delete",
"authenticity_token"=>"yHeRR49ApB/xGq1jzMTdzvix/TJt6Ysz88nuBEotHec=",
"ticket_ids"=>["11",
"12"],
"commit"=>"Delete selected",
"id"=>"destroy_multiple"}
dove u usare "@ticketsts" questo ??? questa è la correzione e il codice perfetto .... "Ticket.destroy (params [: ticket_ids])" – SSR
è un refuso, l'ho corretto @SSR – Radhakrishna