我在铁轨上有一个红宝石下拉列表,如下:
<table>
<tr>
<td align="center">
<%= f.select(:Interest,options_from_collection_for_select(@students, "id", "student_mentor_subjects"), {},:id => "DDL_Students", :style => "width:160px;") %>
</td>
</tr>
</table>
学生是一个填充f.select
的表格,下面是学生表的架构:
id | student_mentor_subjects
1 | ijk
2 | mno
3 | pqr
当我从f.select
上方选择一个值并单击搜索按钮然后刷新页面并且所选值丢失,如何在页面刷新后保留所选的f.select
值。
请帮助我,谢谢。
答案 0 :(得分:2)
来自api:
options_from_collection_for_select(collection, value_method, text_method, selected = nil)
options_from_collection_for_select的第四个参数是默认值。在你的情况下,你需要从params设置它,然后回退到一个特定的默认值,如果它没有任何内容(这是第一次加载页面时的情况)。
我不知道从params读取哪个值,因为你没有发布表单的其余部分,但如果查看日志,你应该看到你想要读取的值。所以,可能就像
<%= f.select(:Interest,options_from_collection_for_select(@students, "id", "student_mentor_subjects", params[:search][:interest] || @students.first.id), {},:id => "DDL_Students", :style => "width:160px;") %>