我只是想让列表框工作,允许选择多个值。它正确传递一组用户ID,但传递的第一个参数为null。我在源表中没有任何空值,所以我很困惑这来自哪里。我可能做了一些基本的错误,所以任何帮助都非常感激。
来自日志文件:
Parameters: {"utf8"=>"✓", "authenticity_token"=>"0Ia2kGYj1qidP6saEOfAjywDQkbds+cbFBzJ1H3UyRE=", "user_ids"=>["", "3", "4"], "commit"=>"Add Users to Group", "id"=>"create_multiple"}
`[1m[35mUser Load (1.0ms)[0m SELECT `users`.* FROM `users` WHERE `users`.`user_id` IN (0, 3, 4)`
来自视图的代码:
<%= form_for :user, :url => create_multiple_user_roles_path, :html => { :method => :put } do |f| %>
<p>
<%= collection_select(:user, :user_ids, @users, :id, :last_name,
{ :selected => :user_ids },
{:multiple => true, :name => 'user_ids[]', :size => 10, :include_blank => false } ) %>
</p>
<%= submit_tag "Add Users to Group" %>
答案 0 :(得分:1)
将include_blank放在第一个哈希中,如下所示
<%= collection_select(:user, :user_ids, @users, :id, :last_name,
{ :selected => :user_ids,:include_blank => false },
{:multiple => true, :name => 'user_ids[]', :size => 10} ) %>
答案 1 :(得分:0)
您已添加:included_blank =&gt;假,如果是假,那么我认为你不需要它。请将其删除并再次检查。我希望它能解决你的问题。