¿Cómo se eliminan varios registros usando casillas de verificación en Rails 3?Rieles 3: elimine registros múltiples mediante las casillas de verificación
Respuesta
routes.rb:
resources :blog_posts do
collection do
delete 'destroy_multiple'
end
end
index.html.erb:
<%= form_tag destroy_multiple_blog_posts_path, method: :delete do %>
<table>
...
<td><%= check_box_tag "blog_posts[]", blog_post.id %></td>
...
</table>
<%= submit_tag "Delete selected" %>
<% end %>
blog_posts_controller.rb:
def destroy_multiple
BlogPost.destroy(params[:blog_posts])
respond_to do |format|
format.html { redirect_to blog_posts_path }
format.json { head :no_content }
end
end
Envía los identificadores de todos los elementos marcados en el controlador. Estoy asumiendo que u tiene enviar identificadores de ser eliminados de la clase Foo a borrar
ids = params[:ids]
Foo.where("id in (#{ids}")).destroy
o
ids = params[:ids].split(",")
Foo.where(id => ids).destroy
Uso destruir, no utilice eliminar si tiene alguna dependencia.
'.where (: id => (params [: blog_posts])). Des troy' me daría 'ArgumentError in BlogPostController # destroy_multiple \ número incorrecto de argumentos (0 para 1)'. – user202448
ver las ediciones en mi respuesta. –
Suponiendo que desea mostrar una lista de registros en una tabla, cada uno con una casilla de verificación, y tiene un botón Eliminar que hará que se eliminen todos los registros marcados.
En primer lugar, usted tiene que crear nombres de las casillas de verificación que contienen el ID de registro, usted puede hacer esto:
<%= check_box_tag("delete[#{@thing.id}]",1) %>
que va a crear HTML que incluirá la siguiente
<input id='delete[1000]' type='checkbox' value='1' name='delete[1000]'>
Así que cuando usted publica un formulario, si ha marcado la casilla para los registros con los identificadores 1001 y 1002, su publicación contendrá:
"delete[1001]"=>"1"
"delete[1002]"=>"1"
Así
dentro de su controlador, usted puede hacer esto
params[:delete].each do |id|
Thing.find(id.to_i).destroy
end
respuesta más fácil. – courtsimas
- 1. Casillas de verificación en rieles
- 2. Completando las preferencias mediante programación con casillas de verificación
- 3. Rails 3: cómo guardar las casillas de verificación (no) marcadas?
- 4. Uso de casillas de verificación para filtrar registros
- 5. ASP.Net MVC - Maneje múltiples casillas de verificación
- 6. ASP.NET MVC Múltiples casillas de verificación
- 7. Desmarque todas las casillas de verificación
- 8. ¿Cómo usar casillas de verificación dentro de TDBGrid para seleccionar múltiples registros?
- 9. ¿Cómo funcionan las casillas de verificación en Rails?
- 10. jquery seleccione todas las casillas de verificación
- 11. Marque/Desmarque todas las casillas de verificación
- 12. Si las declaraciones para Casillas de verificación
- 13. Jquery marque las casillas de verificación
- 14. casillas de verificación jQuery
- 15. Múltiples casillas de verificación, Convertir a cadena, Rieles de columna DB individuales
- 16. Obtención de múltiples casillas de verificación de elemento FormCollection
- 17. Rieles: elimine todos los registros que cumplan una condición
- 18. Jquery: Enlace cambiar a casillas de verificación múltiples
- 19. Búsqueda de registros sin registros asociados en rieles 3
- 20. Rieles 3- Recuperar los últimos N registros
- 21. QTreeView Casillas de verificación
- 22. obteniendo múltiples casillas de verificación nombres/id's con php
- 23. Envío de múltiples opciones de casillas de verificación
- 24. Obtener datos POST de múltiples casillas de verificación?
- 25. Cómo obtengo múltiples valores de casillas de verificación en Django
- 26. Jquery cómo contar marcó e inhabilitó las casillas de verificación
- 27. ExpandableListView y casillas de verificación
- 28. ExtJS 4 seleccionar múltiples casillas de verificación CheckColumn con casillero de casilla de verificación
- 29. casillas de verificación de pirámide
- 30. ¿Transforma las casillas de verificación (múltiples selecciones) en botones de opción o casillas con una sola selección?
Si BlogPost pertenecía a una Colección, ¿cómo funcionaría? Ejemplo:/collection/1/blogpost/1 – dngoo
Gracias. Usando Rails 4, tuve que poner splat antes de params, como '* params [: blog_posts]', de lo contrario arrojaría un error: 'ActiveRecord :: AssociationTypeMismatch: BlogPost (# - 580055888) esperado, obtuvo String (# - 603015658) ' –
Esta es una gran respuesta. ¿Sabes cómo podría agregar validación para garantizar que un usuario haya seleccionado una casilla de verificación cuando hacen clic en el botón Eliminar? –