在我的rails表格中,我使用的是多选标签
代码看起来像
<%= select_tag '[mycontroller][users]', @users, { :multiple => true, :size => 7} %>
<p><%= submit_tag l(:button_apply)%></p>
传递的表单提交参数是
mycontroller[users][]=79&mycontroller[users][]=80&commit=Apply
现在在我的视图文件中,当我检索params时,它们被转换为字符串 所以我[79,80]被转换为“7980”
获取用户参数的代码看起来像
users = params[:mycontroller][:users] unless params[:mycontroller].nil?
修改:
问题我想是“#{}”将数组转换为字符串。偶数&lt;%=%&gt;将调用to_s
那么如何覆盖呢?因此to_s将返回“79,80”而不是“7980”
我缺少什么? 请评论?
日Thnx。
答案 0 :(得分:3)
覆盖to_s
似乎非常沉重。
您可以单独遍历显示每个元素的数组(如果您为每个元素呈现复杂的内容,则通常更具可读性;如果您只想用逗号分隔数组元素,则可以使用类似my_array.join(',')
的内容。< / p>
答案 1 :(得分:1)
尝试调用array.join(“,”)并且[79,80]的数组应该变成类似“79,89”的字符串
答案 2 :(得分:0)
我不知道Array.join返回字符串,所以我试图以自己的方式解决它。 这可能不是有效/有效的,但它是一种解决方法。
arr = [79,80]
a =arr.inject(0){|op,i| op.to_s + i.to_s + ","}.to_s
a[1,a.length-2] # "79,80"