我遇到了这个问题,我得到了下拉列表,但所选的选项没有显示出来。这是我在.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
将自动获取并设置所选值,但这显然不会发生。
我希望有人能看到我在这里犯下的明显错误......
答案 0 :(得分:1)
希望这会有所帮助 &lt;%= f.select:source_type_id,@ source_types.collect {| p | [p.name,p.id]},params [:source_type_id]%&gt;