Вы можете добавить новые маршруты для обработки действий над несколькими записями (скажем, сообщениями) в одном запросе:
Выполните изменения, как показано ниже:
# config/routes.rb
resources :posts do
collection do
put :bulk_update
delete :bulk_destroy
end
end
Он добавит эти новые маршруты в дополнение к обычным маршрутам CRUD:
bulk_update_posts PUT /posts/bulk_update(.:format) posts#bulk_update
bulk_destroy_posts DELETE /posts/bulk_destroy(.:format) posts#bulk_destroy
Теперь добавьте соответствующие действия контроллера для того же самого:
# app/controllers/posts_controller.rb
before_action :fetch_posts, only: [:bulk_update, :bulk_destroy]
def bulk_update
@posts.update_all(permitted_params)
redirect_to posts_path
end
def bulk_destroy
@posts.destroy_all
redirect_to posts_path
end
private
def fetch_posts
@posts = Post.where(id: params[:post_ids])
end
def permitted_params
# Decide for yourself
end