如何在Rails中对option_groups_from_collection_for_select的子项进行排序

时间:2014-11-11 17:28:57

标签: ruby-on-rails ruby-on-rails-4

我有一个选择列表,其中包含从option_groups_from_collection_for_select

呈现的optgroups和子选项

这很好但我没有看到任何方法来指定任何文档中每个子节的排序顺序。我宁愿不必依靠自己的绘图和排序;我认为这是一个普遍的需要成为帮助者的一部分。

如何对每个分组中的孩子进行排序?

1 个答案:

答案 0 :(得分:3)

has_many中声明订单。以api doc http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-option_groups_from_collection_for_select为例,您可以这样做:

class Continent < ActiveRecord::Base
  has_many :countries, -> { order("countries.name") }
end

class Country < ActiveRecord::Base
  belongs_to :continent
end

如果您想在collection_select中使用专门的数据,通常最容易在模型中处理它。