PaperTrail — это популярный драгоценный камень в экосистеме Ruby on Rails, который обеспечивает функции управления версиями и аудита для моделей ActiveRecord. Однако могут быть сценарии, в которых вы захотите отключить PaperTrail в интерфейсе администратора Rails. В этой статье мы рассмотрим несколько методов с примерами кода для отключения PaperTrail в Rails Admin.
Методы отключения PaperTrail в администраторе Rails:
-
Метод 1. Удаление конфигурации PaperTrail
# config/initializers/paper_trail.rb PaperTrail.enabled = false -
Метод 2: переопределение метода PaperTrail
enabled?# app/models/your_model.rb class YourModel < ApplicationRecord def self.paper_trail_enabled_for_controller? false end end -
Метод 3. Удаление обратных вызовов PaperTrail
# app/models/your_model.rb class YourModel < ApplicationRecord has_paper_trail ignore: [:updated_at, :created_at] before_save :skip_paper_trail before_destroy :skip_paper_trail private def skip_paper_trail self.paper_trail.enabled = false end end -
Метод 4. Пользовательское действие контроллера
# app/controllers/admin/your_models_controller.rb class Admin::YourModelsController < ApplicationController def disable_paper_trail PaperTrail.enabled = false redirect_to admin_your_models_path end end -
Метод 5. Использование флага функции
# app/controllers/admin/your_models_controller.rb class Admin::YourModelsController < ApplicationController def index PaperTrail.enabled = false if feature_flag_enabled?(:disable_paper_trail) # ... end end
Отключить PaperTrail в Rails Admin можно различными способами в зависимости от ваших конкретных требований. В этой статье обсуждались пять различных методов, каждый из которых имеет собственный пример кода. Используя любой из этих методов, вы можете эффективно отключить PaperTrail в интерфейсе администратора Rails.