2011-07-06 24 views
6

Tôi muốn sắp xếp/sắp xếp nó (desc hoặc asc như thế nào tôi muốn nó) bằng cột bảng cơ sở dữ liệu "phát" Im hoàn toàn nhầm lẫn. Chỉ cần tìm thấy một giải pháp cho lựa chọn nhưng không phải collection_select?Ruby on Rails: Cách sắp xếp một collection_select

một số mã của quan điểm của tôi

<%= f.collection_select :player1, Player.all, :id, :name %> 

không biết làm thế nào để sắp xếp/trật tự

cũng có các cột trong bảng cơ sở dữ liệu như "vở kịch", "mục tiêu" ...

Trả lời

18

Chỉ cần chuyển bộ sưu tập thực sự đã ra lệnh tới collection_select helper:

collection_select(:post, :author_id, Author.order('created_at DESC'), :id, :name_with_initial, :prompt => true) 

Vì vậy, trong món súp của bạn Ví dụ rce nó sẽ trông như thế này:

<%= f.collection_select :player1, Player.order('plays DESC'), :id, :name %> 
+0

không biết ý bạn là gì, là một newbie. bạn có thể thay đổi mã để xem của tôi để nó sẽ làm việc và nơi để thêm mã này của bạn? đã thử Player.all.order ('created_at DESC') trong chế độ xem nhưng không hoạt động? –

+0

Đây là ý tưởng đúng, nhưng gọi 'all' thực hiện truy vấn SQL (đó là lý do tại sao bạn không thể gọi' thứ tự' sau đó). Bạn chỉ có thể di chuyển '.all' đến cuối chuỗi hoặc xóa nó hoàn toàn vì nó được ngụ ý. '<% = f.collection_select: player1, Player.order ('phát DESC'),: id,: name%>' –