Rails Ações tranquilas Index Put
Frequentemente, encontro a situação em que quero atualizar muitos registros de uma só vez - como o GMail faz ao definir muitas mensagens "lidas" ou "não lidas"
@Rails incentiva isso com o método 'update' em uma classe ActiveRecord - Comment.update (keys, values)
Example -http: //snippets.dzone.com/posts/show/749
Esta é uma ótima funcionalidade, mas difícil de mapear para uma rota tranquila. De certa forma, eu gostaria de ver um: colocar ação em uma coleção. Nas rotas, podemos adicionar algo como
map.resources :comments, :collection => { :update_many => :put }
E então, no formulário, você faria isso ...
<% form_for @comments do |f| %>
...
Isso não funciona em muitos níveis. Se você fizer isso:: collection => {: update_many =>: put}, o rails enviará uma postagem para a ação do índice (CommentsController # index), quero que vá para a ação 'update_many'. Em vez disso, você pode fazer uma: coleção => {: update_many =>: post}. Isso irá, pelo menos, para a ação correta no controlado
E, em vez do formulário <% para @ comentários ..., você deve fazer o seguinte:
<% form_for :comments, :url => { :controller => :comments, :action => :update_many } do |f| %>
Funcionará bem desta maneira
Ainda não é perfeito - parece um pouco como se não estivéssemos fazendo o 'caminho Rails'. Também parece que: post e: delete também faria sentido em um controlador de coleçã
Estou postando aqui para ver se há algo que eu perdi ao configurar isso. Quaisquer outros pensamentos sobre como realizar um nível de coleta tranqüilamente: post,: put,: delete?