many_to_many的list关联未保存在rails 4中

时间:2014-02-03 06:17:49

标签: ruby-on-rails ruby-on-rails-4

我有以下型号:

class User < ActiveRecord::Base
has_and_belongs_to_many :clubs
accepts_nested_attributes_for :clubs

class Club < ActiveRecord::Base
has_and_belongs_to_many :users

class UsersClubs < ActiveRecord::Base
end

在我的用户控制器中,我指定了:

def user_params
    params.require(:user).permit(:club_ids => [])
end

在我的表格中,我有:

<%= select_tag :club_ids, options_from_collection_for_select(@Club.all, "id", "name"), :multiple=>true%>

点击表单提交后,我看到club_ids与选择表单中的值一起发送,但是当我调用user.update(user_params)时,它没有将它们添加到数据库中。我已经查看了其他示例并相应地进行了更改,但仍然无效。我错过了什么?

编辑:我知道我可以自己进行插入和删除,因为我收到一个填充了我想要的值的数组,所以我可以插入相应的记录。我只是想知道rails是否通过更新params自动执行此操作。

1 个答案:

答案 0 :(得分:0)

尝试将:club_ids => []放入哈希值。

例如

def user_params
  params.require(:user).permit({:club_ids => []})
end

引自here