2011-07-06 124 views
6

我想排序/排序(desc或asc我想怎么样)由数据库表列“播放” 我完全困惑。刚刚找到了一个解决方案,但不是collection_select?Ruby on Rails:如何排序collection_select

我的观点的一些代码

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

不知道如何排序/顺序

也有像“戏剧”,“目标”的数据库表列...

回答

18

只是通过实际订购的收集到collection_select帮手:

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

因此,在你的sou例如它看起来像这样:

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

不知道你是什么意思,是一个新手。你能否将代码更改为我的视图,以便它能正常工作以及在哪里添加此代码?尝试Player.all.order('created_at DESC')在视图中,但没有工作? –

+0

这是正确的想法,但调用'all'执行SQL查询(这就是为什么你以后不能调用'order')的原因。您可以简单地将'.all'移动到链的末尾或将其完全移除,因为它是隐含的。 '<%= f.collection_select:player1,Player.order('播放DESC'),:id,:name%>' –

相关问题