Метод переопределения для модели - PullRequest
0 голосов
/ 03 июля 2019

Я настраиваю своего активного администратора с помощью кода ниже

ActiveAdmin.register Question do
  index do
    Question.column_names.each do |c|
      column c.to_sym
    end
  end

  show do
    attributes_table do
      Question.column_names.each do |c|
        row c.to_sym
      end
    end
  end
end

Однако я не хочу показывать некоторые поля, такие как created_at и updated_at. Как я могу переопределить этот метод, чтобы скрыть эти поля? Можно ли подать заявку на все остальные модели?

1 Ответ

0 голосов
/ 04 июля 2019

Я нахожу файл app/models/application_record.rb. Здесь я пишу новый метод (вы можете переопределить текущий, если хотите, но я думаю, что новый метод этот лучше)

class ApplicationRecord < ActiveRecord::Base
  self.abstract_class = true

  def self.column_names_without(*names)
    column_names - (%w[created_at updated_at] | names)
  end
end

Затем код ActiveAdmin изменяется на

ActiveAdmin.register Question do
  index do
    selectable_column
    Question.column_names_without('quiz_id').each do |c|
      column c.to_sym
    end
  end

  show do
    attributes_table do
      Question.column_names_without('quiz_id').each do |c|
        row c.to_sym
      end
    end
  end

end

...