Activeadmin: Как я мог выбрать записи модели по индивидуальному запросу?

Созданный на 6 февр. 2013  ·  3Комментарии  ·  Источник: activeadmin/activeadmin

Привет,

У меня следующая проблема. Когда я пытаюсь вывести записи модели, я хочу исключить записи с полем dismiss, равным FALSE. Как я мог это сделать? Возможно ли это без default_scope?
Мой пример кода:

ActiveAdmin.register Approval do
  index do 
      column :id
      column 'Пользователя', :user
      column 'Заапрувил член клуба', :member
      column :dismiss
      default_actions
  end
end

Самый полезный комментарий

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

Все 3 Комментарий

Вы можете переопределить метод 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
Была ли эта страница полезной?
0 / 5 - 0 рейтинги