Rails,collection_select - 记住值:在表单提交后选择

时间:2010-12-20 19:03:56

标签: ruby-on-rails

(在没有版本选择的内部工作服务器上使用Rails 2.3.5,我很新)

我正在构建一个搜索表单,我需要向用户提供一个目录列表,以便他们可以选择要搜索的目录。我试图弄清楚如何在提交表单后保留collection_select的选定值。

假设用户从collection_select中选择了3个目录,这些目录的id在params中看起来像这样:

directory: !map:HashWithIndifferentAccess 
  id: 
  - "2"
  - "4"
  - "6"

我知道您可以手动指定多个选定项目:

<%= collection_select :directory, :id, @directories, :id, :name,
                 {:selected => [2,4,6]}, {:size => 5, :multiple => true} %>

我也玩了一下,并且能够使用params hash中的“to_i”来反对单个值:

<%= collection_select :directory, :id, @directories, :id, :name,
                 {:selected => params[:directory][:id][0].to_i}, {:size => 5, :multiple => true} %>

我无法弄清楚如何同时使用:directory params的所有值,以便在提交表单后用户选择的内容仍然存在。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

我不确定你在问什么,但是如果你试图将params[:directory][:id]中的字符串数组作为整数数组,那么你只需要

params[:directory][:id].map{|id|id.to_i}