has_and_belongs_to_many的批量分配

时间:2015-10-12 23:10:04

标签: ruby-on-rails-4 has-and-belongs-to-many

我有两个模型:UserItem。这些模型之间存在has_and_belongs_to_many关联(即,有一个“数据透视表”,可将多个用户与多个项目关联起来)。

通常,在创建用户时,项目与其关联(但不会创建新项目)。在创建新用户时(通过批量分配)我如何为其分配某些项目?

例如,如果我的控制器收到以下参数哈希:

params = {
  user: {
    email: 'someone@example.com',
    item_ids: [1,2,3]
  }
}

user = User.new(params.require(:user).permit(:email, :item_ids))

如何确保ID为1,2,3的项目与新创建的用户相关联?

1 个答案:

答案 0 :(得分:1)

您需要将item_ids列入数组参数:

user = User.new(params.require(:user).permit(:email, {item_ids: []}))