gpt4 book ai didi

mysql - 更新多对多关系表上的值

转载 作者:行者123 更新时间:2023-11-29 11:12:46 25 4
gpt4 key购买 nike

我在使用 ruby​​ on Rails 的多对多关系表上遇到问题。

我有两个表和一个关系表(这是一个连接表)。它们的命名如下

  1. 用户
  2. 角色
  3. 角色_用户

我的问题是如何更新第三个表上的用户角色的值。

示例

如果我分配一个

user_id 34 到 admin(role_id = 2)

user_id 34 至主管(role_id = 3)

我应该在 Role_User 表中有两个条目。现在我想将 user_id 34 更新为 admin(role_id = 1) 我如何在 Rails 上执行此操作

我已经使用 Rails 上的 update_all 命令更新了用户详细信息,如下所示

@user = User.where(id: user_params[:id]);
@user.update_all(
first_name: user_params[:first_name],
last_name: user_params[:last_name],
email: user_params[:email],
contact_number: user_params[:contact_number],
user_name: user_params[:user_name],
password: user_params[:password]
);

我尝试使用以下代码更新用户的角色,但失败了

@roles = user_params[:roles];
for role in @roles
@user.roles << Role.find(role)
end

@user.save;

最佳答案

你应该能够做类似的事情:

role = Role.find(ID)
user.roles << role
user.save

关于mysql - 更新多对多关系表上的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40239308/

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