html - options_from_collection_for_select 排序

标签 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 的顺序。如何指定公司名称的字母顺序

最佳答案

顺序是 Partner.all 产生的任何顺序,它可以是插入顺序,或者如果您使用 default_scope 则可能是其他顺序.

只需添加一个 .order您的 AR 请求的组成部分。

例如:

Partner.order(:company_name).all

或者如果你想更明确一些

Partner.order("company_name DESC").all

旁注,通常最好不要在 View 中发出这样的数据库请求。如果将其移至 Controller 并改为创建一个实例变量,它会更干净、更易于维护。

关于html - options_from_collection_for_select 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27160849/

相关文章:

javascript - 在 Bootstrap 中居中导航元素

javascript - Webpack 不能要求 Popper

ruby-on-rails - 未定义的方法 'each' Ruby on Rails

ruby - 从 Ruby 中的列表中删除/删除备用号码

html - SASS/Flexbox 不工作

javascript - .scroll() 不工作 jquery

ruby-on-rails - 如何将 Base64 编码的二进制(使用 LZX 算法编码)解码回原始字符串

ruby-on-rails - sqlite3_native.so : [BUG] Segmentation fault

html - 如何使用 CSS 使另一个标签的行为与 pre 标签完全一样?

ruby-on-rails - 用于编码 URL 的简单密码