我有一个看起来像这样的选择框(在 form_for 中)
<%=f.select(:whatever_id, {"blah"=>0, "blah2"=>1, "blah3"=>2, "blah4"=>3}, {:include_blank => true}) %>
输出很好,但是很奇怪……像这样:
<select id="personal_information_whatever_id" name="personal_information[whatever_id]"><option value=""></option>
<option value="1">blah2</option>
<option value="2">blah3</option>
<option value="0">blah</option>
<option value="3">blah4</option></select>
但我希望它按顺序进行......发生了什么,我该如何纠正它?
编辑:我觉得答案与此有关
You can never be guaranteed of any order with hashes. You could try .sort() to sort the values in alphabetical order.
除了散列之外,还有什么我可以使用的吗?
最佳答案
是的,你应该使用数组的数组。你的例子最简单的方法是这样的:
<%=f.select(:whatever_id, [["blah", 0], ["blah2", 1], ["blah3", 2], ["blah4", 3]], {:include_blank => true}) %>
这应该足够了。查看 api.rubyonrails.com 上的文档也是。
关于ruby-on-rails - select_tag 正在排序(奇怪地)[Rails],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/529068/