Activeadmin: كيف يمكنني تحديد نموذج السجلات عن طريق الاستعلام المخصص؟

تم إنشاؤها على ٦ فبراير ٢٠١٣  ·  3تعليقات  ·  مصدر: activeadmin/activeadmin

أهلا،

لدي المشكلة التالية. عندما أحاول إخراج سجلات نموذجية ، أريد استبعاد السجلات التي بها حقل "رفض" يساوي "خطأ". كيف أستطيع فعل هذا؟ هل من الممكن بدون "default_scope"؟
مثال الكود الخاص بي:

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

التعليق الأكثر فائدة

تينكس. حل:

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

تينكس. حل:

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 التقييمات