options_from_collection_for_select排序

时间:2014-11-26 23:48:14

标签: html ruby-on-rails ruby

如何对选项字段进行排序?

我在haml中有以下表格

= form_tag assign_client_path, :id => "assign_client_form" do
  %legend select partner
  %label Select the partner you wish to assign this client to
  = select_tag "partner_id", options_from_collection_for_select(Partner.all, "id", "company_name")
  = submit_tag "Assign",  :id => 'assign'

使用select标签,用户正在从公司名称列表中进行选择,但它正在以另一个顺序生成列表,可能是ID的列表。如何指定company_name的字母顺序

1 个答案:

答案 0 :(得分:3)

订单是Partner.all产生的任何订单,可以是插入顺序,如果使用default_scope,也可能是其他订单。

只需在您的AR请求中添加.order组件即可。

例如:

Partner.order(:company_name).all

或者如果你想更明确

Partner.order("company_name DESC").all

旁注,通常最好不要在视图中发出这样的数据库请求。如果将其移动到控制器并改为创建实例变量,它将更清晰,更易于维护。