Ruby On Rails - 显示依赖于params的collection_select的默认选项

时间:2012-02-27 16:32:23

标签: ruby-on-rails select

我正在使用过时版本的rails(2.2)。

我有一个包含搜索过滤器的页面。当我过滤选项时,我希望下拉框默认为我选择的过滤器。过滤器作为参数存储在URL中。即 filter [Issue + Header] = test& filter [in4User] = 1& filter [Module] = 3

我搜索的内容:

http://i.stack.imgur.com/r804l.png

我在页面加载时看到的内容(正如您所见,文本框已重新填充,但下拉列表未重新填充):

http://i.stack.imgur.com/G83X8.png

页面加载时我想看到的内容:

http:// [remove_this_space] i.stack.imgur.com/r804l.png

我正在使用的collection_select示例:

<%= collection_select(:filter, "Client", Client.find(:all, :conditions => ['status = 0']), :ClientID, :Name, :include_blank => true) %>

1 个答案:

答案 0 :(得分:2)

您需要做的是将:selected选项传入集合选择,并将相应的参数作为值传递,如下所示:

<%= collection_select(:filter, "Client", Client.find(:all, :conditions => ['status = 0']), :ClientID, :Name, :include_blank => true, :selected => params[:filter]) %>

应该选择客户端,假设客户端在集合中。