rails中嵌套属性的强大参数

时间:2018-03-13 17:55:59

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

我在强参数白名单中指定嵌套参数时遇到问题

permit!列入白名单

def sign_up_params
  params.require(:user).permit!
end

但指定参数失败

def sign_up_params
  params.require(:user).permit(:name, ......, role_ids: [])
end

错误:未经许可的params role_ids:[]

我的模特:

Roles: 
  has_and_belongs_to_many :users

Users:
  has_and_belongs_to_many :roles

join table: roles_users

habtm error

我添加了一个控制台截图。这是一个habtm错误(显示为链接)

谢谢.. 终于找到了答案 创建

@user = User.new(sign_up_params)
@user.role_ids = params[:user][:role_ids]

1 个答案:

答案 0 :(得分:0)

你的模型关系似乎有问题。它需要改为:

users:
has_and_belongs_to_many :roles


roles:
has_and_belongs_to_many :users