أهلا،
لدي المشكلة التالية. عندما أحاول إخراج سجلات نموذجية ، أريد استبعاد السجلات التي بها حقل "رفض" يساوي "خطأ". كيف أستطيع فعل هذا؟ هل من الممكن بدون "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
تينكس. حل:
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
التعليق الأكثر فائدة
تينكس. حل: