如何对collection_radio_buttons对象进行排序

时间:2019-02-10 21:56:48

标签: ruby ruby-on-rails-5

我有以下单选按钮,当前默认情况下使用updated_at日期/时间进行排序。我想按ID排序。 The docs说,您可以使用一个块指定顺序,但是我似乎无法弄清楚上下文。这是单选按钮。我想基于Infosessions.all说明字段的ID添加一种排序方式:

          <%= f.collection_radio_buttons :investor, InfoSession.all, :id, :description,
                                      label: "Please select an investor session:",
                                      required: true,
                                      checked: 1,
                                      wrapper: { class: 'text-left'} %>

1 个答案:

答案 0 :(得分:1)

在您的InfoSession模型中定义范围,

class InfoSession < ApplicationRecord
  scope :sorted_by_description, -> { order(description: :desc) } #default is :asc
end

然后在您的视图中(或者在控制器中更好,然后传递到视图),

<%= f.collection_radio_buttons :investor, InfoSession.sorted_by_description, :id, :description,
           label: "Please select an investor session:",
           required: true,
           checked: 1,
           wrapper: { class: 'text-left'} %>