2009-04-06 56 views
6

Tôi đang tìm một đề xuất về cách tốt nhất để có người dùng cuối từ tệp xem của ứng dụng Rails thiết lập thứ tự sắp xếp của tập kết quả được trả về bởi "tìm" của mô hình phương pháp. Nói cách khác, tôi muốn người dùng có thể chọn thứ tự sắp xếp của họ từ danh sách lựa chọn.Cách tốt nhất để có người dùng cuối Chỉ định thứ tự sắp xếp trong Rails

Ban đầu, tôi nghĩ rằng tôi chỉ có thể đặt chuỗi mà tôi sẽ đặt trong tham số thứ tự: nhưng điều đó có vẻ như một ý tưởng tồi từ quan điểm bảo mật.

Tôi cho rằng tôi luôn có thể sử dụng chuyển đổi dựa trên các giá trị từ danh sách lựa chọn, nhưng điều đó có vẻ hơi cồng kềnh.

Cảm ơn bạn đã tìm kiếm.

Trả lời

4

Tôi sẽ sử dụng AR :: Base # column_names để khử trùng đầu vào. Một cái gì đó như:

@models = Model.find(:all, :order => params[:sort].select({|name| Model.column_names.include? (name) }).join(',')) 

Bạn có thể mở rộng này, với một chút tiền xử lý, thay đổi cho dù bạn muốn sắp xếp tăng dần hoặc giảm dần với mỗi phím. Hi vọng điêu nay co ich!

+0

Nifty, cảm ơn bạn :) – jklina

2

Điều này có thể nằm ngoài những gì bạn đang tìm kiếm, nhưng gần đây, tôi đã dựa vào javascript để xử lý việc sắp xếp tiếp theo cho tôi. Một bảng phân loại tốt cho nguyên mẫu là Tablekit (http://www.millstream.com.au/view/code/tablekit), nó không phô trương, nhanh chóng và dễ sử dụng. Nó cũng bao gồm các niceties như chỉnh sửa tại chỗ và thay đổi kích thước cột.

0

một cái gì đó ray có thể sao chép từ CakePHP giàn giáo (paginator sorter trên index() trong CakePHP)

+0

Câu trả lời này là một chút thưa thớt ... bạn có thể xây dựng một chút? –

Các vấn đề liên quan