Целесообразно исключить ActionController::Base, если гем в приложении зависит от Rails

У меня небольшая дилемма, когда некоторые люди предлагают исключить ActionController::Base из наследования дерева контроллеров и использовать вместо этого ActionController::Metal, чтобы ускорить выполнение запросов, однако основное приложение зависит от CMS Comfortable Mexican Sofa, который зависит от стека Rails.

Отсюда возникает вопрос:

  • Будет ли изменение класса наследования иметь значение в этом случае? Зачем?
  • Как проверить работоспособность контроллера спасибо.

1 ответ

Решение

ActionController::Metal на самом деле является дополнительной версией ActionController::Base. В него не входят утилиты для рендеринга представлений, частичных или других ответов, что повышает производительность. Люди сообщают о 25-кратном увеличении скорости по сравнению с обычными действиями Rails согласно блогам RubyOnRails. Но ActionContoller:Metal в основном используется для создания API, где вы можете вручную указать только те утилиты, которые требуются в приложении.

Например:

class ApiController < ActionController::Metal
  include AbstractController::Rendering
  include ActionView::Layouts

Вы можете измерить производительность действий контроллера, используя гем под названием rack-mini-profiler, или вы можете использовать для этого тестирование производительности rails.

Другие вопросы по тегам