Con frecuencia me he encontrado con la situación en la que quiero actualizar muchos registros a la vez, como hace GMail al configurar muchos mensajes como "leer" o "no leído".Rieles Acciones silenciosas Índice Poner
rieles alienta esto con el método de la 'actualización' de una clase ActiveRecord - Comment.update (teclas, valores)
Ejemplo - http://snippets.dzone.com/posts/show/7495
Ésta es una gran funcionalidad, pero difícil de mapa a una ruta de descanso . En cierto sentido, me gustaría ver una: poner acción en una colección. En rutas, podríamos añadir algo así como
map.resources :comments, :collection => { :update_many => :put }
Y luego, en la forma, que haría esto ...
<% form_for @comments do |f| %>
...
Esto no funciona en muchos niveles. Si haces esto:: collection => {: update_many =>: put}, rails enviará una publicación a la acción de índice (CommentsController # index), quiero que vaya a la acción 'update_many'. En cambio, puede hacer a: collection => {: update_many =>: post}. Esto al menos irá a la acción correcta en el controlador.
Y, en lugar de < forma% para @comments ... que tiene que hacer lo siguiente:
<% form_for :comments, :url => { :controller => :comments, :action => :update_many } do |f| %>
Se trabajará Aceptar esta manera
aún no es perfecto - se siente un poco como nos No lo estoy haciendo de la manera 'Rails'. También parece que: post y delete también tienen sentido en un controlador de colección.
Estoy publicando aquí para ver si hay algo que me perdí al configurar esto. ¿Alguna otra idea sobre cómo hacer un nivel de colección de forma relajada: publicar,: poner,: eliminar?
Soy consciente de que mi respuesta se limita a proporcionar otra solución al problema que inspiró a su pregunta. Lo he editado, refleja eso. – EmFi