(在没有版本选择的内部工作服务器上使用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的所有值,以便在提交表单后用户选择的内容仍然存在。谢谢你的帮助。
答案 0 :(得分:1)
我不确定你在问什么,但是如果你试图将params[:directory][:id]
中的字符串数组作为整数数组,那么你只需要
params[:directory][:id].map{|id|id.to_i}