如何使用简单的表单对集合进行排序

时间:2012-04-27 15:50:08

标签: ruby-on-rails-3 collections simple-form

我从模型中提取类别列表。 在管理部分,我想用它来为产品分配类别。 它工作正常,但列表按顺序显示已添加类别。 我想按字母顺序对它们进行排序,但我无法将其排除在外。

我确信这很简单(希望如此)

这是我的代码:

<%= simple_form_for(@game) do |f| %>
  <%= f.input :name %>
  <%= f.input :description %>
  <%= f.input :copy %>
  <%= f.input :image %>
  <%= f.input :thumbnail %>
  <%= f.input :heroimage %>
  <%= f.association :category, collection: @categories %>
  <%= f.button :submit %>
<% end %>

我尝试在收集方法上添加.sort_by(desc).sort,但它不会更改列表。

干杯

2 个答案:

答案 0 :(得分:5)

以下是更新代码的方法:

<%= f.association :category, collection: Category.order('name ASC') %>

这假设您希望按类别名称按升序排序。

答案 1 :(得分:4)

我想@categories在你的控制器中被指定为一个arel,你可以为它添加一个.order(“description”); e.g。

@categories = Category.order('description')