2012-12-12 14 views
8

Giả sử tôi có một mô hình ActiveAdmin với hai lĩnh vực như sau:ActiveAdmin: Sửa Index Bảng Dựa trên Active Scope

ActiveAdmin.register Book do 

    scope :all, default: true 
    scope :smith #all books by author 'smith' 

    index do 
    column :title 
    column :published_year 
    column :author 
    end 
end 

Tôi không muốn/cần cột 'giả' khi người dùng đã lựa chọn ' smith 'scope.

Vì vậy, có cách nào để có quyền truy cập vào phạm vi hiện tại và chỉ hiển thị cột tác giả ở một trong các phạm vi không? Tôi cho rằng ví dụ này tôi có thể sử dụng một cái nhìn tùy chỉnh và kiểm tra nội dung thực tế của dữ liệu nhưng tôi hy vọng có một cách dễ dàng hơn và tốt hơn.

Trả lời

15

bạn có thể thử một cái gì đó như thế

index do 
    column :title 
    column :published_year 
    column :author unless params['scope'] == 'smith' 
    end 
+0

Bạn là người đàn ông. –

+0

Cảm ơn .. đã lưu thời gian của tôi và chấp nhận .. :) – Sai

1

Bạn cũng có thể truy cập đến đối tượng @current_scope, và bạn có thể làm @ current_scope.scope_method để có được những phương pháp cơ bản phạm vi