gpt4 book ai didi

ruby-on-rails - ActiveRecord 无法更新 HABTM 关系

转载 作者:行者123 更新时间:2023-12-04 05:42:27 25 4
gpt4 key购买 nike

我使用一个简单的用户授权模型,有两个 ActiveRecords UserRoleUserRole 彼此具有 HABTM 关系。

我尝试创建一个用户界面,用于使用简单的复选框为用户分配角色 - 就像在 Railscasts Episode #17 中一样.

我的问题是 User#newUser#update_attributes 都没有使用我的表单提交的参数来更新 User 之间的关系对象及其角色。 params[:user][:role_ids] 包含正确的值。但是在 User.new(params[:user])@user.update_attributes(params[:user]) 之后立即调用 @user.roles > 返回一个空数组。

使用 @user.roles@user.role_ids 手动分配角色是可行的,但不是 User 中的“魔法” #newUser#update_attributes

有什么想法吗?

最佳答案

您在用户模型中调用 attr_accessible 或 attr_protected 的可能性很高,从而使 role_ids 免受批量分配的影响。

如果你真的想通过批量分配运算符更新角色,只需添加

attr_accessible :role_ids

到你的模型。但是,我建议您阅读 http://railspikes.com/2008/9/22/is-your-rails-application-safe-from-mass-assignment首先,了解批量分配的所有潜在问题。

关于ruby-on-rails - ActiveRecord 无法更新 HABTM 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/755774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com