2012-05-15 26 views
8

Trong một trang admin chương trình hoạt động, tôi đã có hai tấm, đầu tiên là kỷ lục tiểu học, các thông tin phúc thứ hai liên quan (bởi has_many) để show trông như thế này:Sắp xếp một table_for trong đường ray activeadmin

panel "Max Amount" do 
    table_for user.max_amount do 
    column 'Amount', :amount 
    column 'time', :updated_at 
    end 
end 

Tôi có thể sắp xếp mức cao đến thấp này (hoặc thấp đến cao) trên cột số tiền không?

Cập nhật: Tôi tìm thấy nguồn cho bản trình diễn (https://github.com/gregbell/demo.activeadmin.info/blob/master/app/admin/users.rb) có vẻ như đã phân loại nhưng khi bạn truy cập trang demo thực tế thì nó không hoạt động. Tính năng này có thể bị hỏng không? Có một công việc xung quanh?

Trả lời

11

Cách duy nhất tôi tìm thấy để làm điều đó là một chút hacky. ActiveAdmin sẽ chuyển vào tên cột và asc/desc thông qua hàm băm params, sau đó bạn có thể thêm nó vào truy vấn của mình.

Ngoài ra, hãy đảm bảo chuyển "có thể sắp xếp: true" thành lệnh gọi table_for.

panel "P&L" do 
    table_for Quote.order(params[:order].gsub('_', ' ')), sortable: true do 
    column("Revenue", sortable: :revenue) { |quote| number_to_currency quote.revenue } 
    column("Profit", sortable: :profit) { |quote| number_to_currency quote.profit } 
    end 
end 
+0

Giải pháp tuyệt vời, đáng buồn là tùy chọn 'có thể sắp xếp: đúng 'không ảnh hưởng đến tôi trên trang hiển thị của một quản trị viên đang hoạt động. Mặc dù tôi thấy nó trong mã nguồn và nó sẽ hoạt động. –

+0

oh nvm, nó hoạt động rất tốt. Tôi chỉ quên 'sortable:: column_name' trong trường hợp của tôi. –

3

Với đường ray 4.2, dựa trên @idrinkpabst, tôi đã làm như sau:

table_for group.devices.order(
    # Support for column name with underscore 
    # Support "no sort param" 
    (params[:order] ? params[:order] : '').gsub('_asc', ' asc').gsub('_desc', ' desc') 
), sortable: true do 
    # Directly using symboles and not using sortable: 
    column :presence 
    column :serial_number 
    column :apk_version 
    column :firmware_version 
end 

Đó là một phiên bản mạnh mẽ hơn:

  • phép tên cột với sự hỗ trợ gạch
  • " không có tham số sắp xếp "
  • hoạt động với đường ray 4.2
Các vấn đề liên quan