Ruby on rails ActiveRecord无法更新HABTM关系

Ruby on rails ActiveRecord无法更新HABTM关系,ruby-on-rails,activerecord,has-and-belongs-to-many,Ruby On Rails,Activerecord,Has And Belongs To Many,我正在使用一个简单的用户授权模型,其中包含两个ActiveRecordsuser和Role 用户和角色之间存在HABTM关系 我试图创建一个用户界面,通过简单的复选框将角色分配给用户,就像在中一样 我的问题是无论是User#new还是User#update_属性都不会使用表单提交的参数来更新User对象与其角色之间的关系参数[:用户][:角色\u ID]包含正确的值。但是在user.new(params[:user])或@user.update_属性(params[:user])之后调用@use

我正在使用一个简单的用户授权模型,其中包含两个ActiveRecords
user
Role
用户
角色
之间存在HABTM关系

我试图创建一个用户界面,通过简单的复选框将角色分配给用户,就像在中一样

我的问题是无论是
User#new
还是
User#update_属性
都不会使用表单提交的参数来更新
User
对象与其角色之间的关系<代码>参数[:用户][:角色\u ID]包含正确的值。但是在
user.new(params[:user])
@user.update_属性(params[:user])
之后调用
@user.roles
会返回一个空数组

使用
@user.roles
@user.role\u id
手动分配角色是可行的,但是
用户#新建
用户#更新(u)属性
中的“魔法”不起作用


有什么想法吗?

在您的用户模型中,您很有可能拥有attr\u可访问或attr\u受保护的调用,从而使角色ID不受大规模分配的影响

如果您确实想通过批量分配操作符更新角色,只需添加

attr_accessible :role_ids

给你的模特。不过,我建议您先阅读,以便了解批量分配的所有潜在问题。

您能发布控制器和查看代码吗?非常感谢。昨天刚读过,但在创建模型时错过了。