Ruby on Rails中的选择下拉列表:未选中选定的值

时间:2011-02-03 13:56:12

标签: ruby-on-rails

我遇到了这个问题,我得到了下拉列表,但所选的选项没有显示出来。这是我在.erb中生成选择下拉列表的代码:

<%= collection_select("url", "source_type_id", @source_types, :id, :name, {:prompt => "Please select..."}) %>

控制器从绑定到模型的查找表中填充@source_types@url_object是模型:

@source_types = SourceType.all

由于模型与查找表的关联方式:

belongs_to :source_type

@url_object.source_type_id返回数值,@url_object.source_type返回查找表中的关联名称。

<select id="url_source_type_id" name="url[source_type_id]"><option value="">Please   select...</option>
<option value="1">Dictionary/Thesaurus</option>
<option value="2">Encyclopedia</option>
<option value="3">Magazine</option>
<option value="4">Map/Atlas</option>
<option value="5">Newspaper</option>
<option value="6">Reference Tools</option></select>

我阅读了此方法的API,其含义是,如果source_type_id存在,collection_select将自动获取并设置所选值,但这显然不会发生。

我希望有人能看到我在这里犯下的明显错误......

1 个答案:

答案 0 :(得分:1)

希望这会有所帮助 &lt;%= f.select:source_type_id,@ source_types.collect {| p | [p.name,p.id]},params [:source_type_id]%&gt;