Привет,
У меня следующая проблема. Когда я пытаюсь вывести записи модели, я хочу исключить записи с полем dismiss, равным FALSE. Как я мог это сделать? Возможно ли это без default_scope?
Мой пример кода:
ActiveAdmin.register Approval do
index do
column :id
column 'Пользователя', :user
column 'Заапрувил член клуба', :member
column :dismiss
default_actions
end
end
Вы можете переопределить метод scoped_collection
в контроллере ресурсов, чтобы получать ресурсы с помощью настраиваемого запроса.
ActiveAdmin.register Approval do
index do
column :id
column 'Пользователя', :user
column 'Заапрувил член клуба', :member
column :dismiss
default_actions
end
def scoped_collection
Approval.where(dismiss: false) # this could be **Approval.dismissed**
end
end
Я пытался переопределить scoped_collection так, как вы написали. Но все записи по-прежнему выводятся. Вот как формируется запрос:
where Approval Load (0.2ms) SELECT "approvals".* FROM "approvals" ORDER BY "approvals"."id" desc LIMIT 30 OFFSET 0
Tnx. Решение:
ActiveAdmin.register Approval do
index do
column :id
column 'Пользователя', :user
column 'Заапрувил член клуба', :member
default_actions
end
controller do
def scoped_collection
Approval.where(dismiss: false)
end
end
end
Самый полезный комментарий
Tnx. Решение: