此输入选择框显示issues
基于另一个输入选择框的选择的列表,该输入选择框显示我的School.rb
模型中的值。但是,这issues
按 issue_id 列出。我需要它按字母顺序列出和排序name
我的模型列。Issue.rb
我已经尝试了所有我能想到的组合!
提前致谢..
<%= f.grouped_collection_select :issue_id, School.all, :issues, :name, :id, :name, :prompt => ""%>
此输入选择框显示issues
基于另一个输入选择框的选择的列表,该输入选择框显示我的School.rb
模型中的值。但是,这issues
按 issue_id 列出。我需要它按字母顺序列出和排序name
我的模型列。Issue.rb
我已经尝试了所有我能想到的组合!
提前致谢..
<%= f.grouped_collection_select :issue_id, School.all, :issues, :name, :id, :name, :prompt => ""%>
在没有看到你的模型的情况下在黑暗中拍摄:
<%= f.grouped_collection_select :issue_id, School.all, :issues, :name, :id, :name, :include_blank => true %>
然后将默认范围添加到您的问题模型。
default_scope :order => 'issues.name ASC'
一般来说,我会犹豫是否输入默认范围,尽管在这种情况下可能是良性的。相反,您可以在学校模型上添加一个方法并从选择中调用它。
通知:
<%= f.grouped_collection_select :issue_id, School.all, :ordered_issues, :name, :id, :name, :prompt => ""%>
在学校.rb:
def ordered_issues
issues.order(:name)
end
您还可以通过传递School.order(:name)
表格按字母顺序排列学校。
试试看嘛,
<%= f.select("issue_id", School.find(:all, :order => "name").collect {|p| [ p.name, p.id ] }, {:include_blank => 'None'}) %>
Rails 5 弃用了@Larry McKenzie 答案的语法。现在变成:
default_scope { order('issues.name ASC') }