【问题标题】:Ruby on Rails: How to sort a collection_selectRuby on Rails:如何对 collection_select 进行排序
【发布时间】:2011-07-06 12:41:44
【问题描述】:

我想按数据库表列“plays”对其进行排序/排序(按我想要的方式降序或升序) 我完全糊涂了。刚刚找到了 select 而不是 collection_select 的解决方案?

我的一些代码

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

不知道如何排序/排序

数据库表中还有“plays”、“goals”等列...

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 sorting


    【解决方案1】:

    只需将实际排序的集合传递给 collection_select 助手:

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

    因此,在您的源示例中,它将如下所示:

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

    【讨论】:

    • 不知道你的意思,我是新手。您能否将代码更改为我的视图,以便它可以工作以及您在哪里添加此代码?在视图中尝试了 Player.all.order('created_at DESC') 但不起作用?
    • 这是正确的想法,但是调用all 会执行SQL 查询(这就是为什么你不能在之后调用order)。您可以简单地将.all 移动到链的末尾或完全删除它,因为它是隐含的。 &lt;%= f.collection_select :player1, Player.order('plays DESC'), :id, :name %&gt;
    猜你喜欢
    • 1970-01-01
    • 2015-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    相关资源
    最近更新 更多