Rails选择列表还原到顶部?

时间:2010-05-18 11:17:12

标签: ruby-on-rails list select

我的rails应用程序中有多个选择列表,如下所示:

<li>Company<span><%= f.select :company_id, Company.all.collect {|m| [m.companyname, m.id]} %></span></li>

它们都运行良好,除非 - 有时如果您转到编辑视图,选择列表将恢复到顶部项目,而不是创建时选择的项目。因此,如果您转到编辑视图然后单击更新而不实际进行任何更改,则列表默认为顶部项目 - 即使您没有触摸它们。

有解决方法吗?

谢谢,

丹尼

编辑:

<% form_for (@kase), :html => { :multipart => true } do |f|  %>


<li>Appointed Surveyor<span><%= f.select :appointedsurveyor_id, Company.all.collect {|m| [m.companyname, m.id]}, {:selected => @kase.appointedsurveyor_id}  %></span></li>
    <li>Surveyor Name<span><%= f.select :surveyorperson_id, Person.all.collect { |x| [x.personname, x.id]}, {:selected => @kase.surveyorperson_id} %></span></li>

我已尝试过上述内容,但遗憾的是它似乎仍然恢复为默认值。

我坚持这个,我根本找不到任何教程等。

编辑2:

<li>Appointed Surveyor<span><%= f.select :appointedsurveyor_id, Company.all.collect {|m| [m.companyname, m.id]}, {:selected => (@kase.appointedsurveyor_id rescue "")} %></span></li>
    <li>Surveyor Name<span><%= f.select :surveyorperson_id, Person.all.collect { |x| [x.personname, x.id]}, {:selected => (@kase.surveyorperson_id rescue "")} %></span></li>

2 个答案:

答案 0 :(得分:2)

您可以使用第三个参数确认它,请尝试以下代码:

<li>Company<span><%= f.select :company_id, Company.all.collect {|m| [m.companyname, m.id]}, {:selected => @your_instance_name.company_id} %></span></li>

确保将@your_instance_name替换为您在form_for标记处使用的实例变量。

希望这有帮助。

答案 1 :(得分:0)

事实证明,我将数据库中的字段视为字符串而不是整数。