【发布时间】:2017-10-24 03:00:18
【问题描述】:
我有两个模型:用户和角色。一个用户可以有多个角色。
假设 user1 有 role1 和 role2。现在我希望 user1 拥有 role2 和 role3。
class User < ActiveRecord::Base
has_and_belongs_to_many :roles
class Role < ActiveRecord::Base
has_and_belongs_to_many :users
这是我的代码
user = User.find(1)
newrole = Role.find(2) #get role3
user.roles[0] = newrole
user.roles[0].save # does not work
user.save # does not work
ruby on rails 解决我的问题的正确方法是什么?
【问题讨论】:
-
user.roles.new = "newrole"和user.roles.save -
我要更新角色1 -> 角色3,而不是添加新角色
-
角色模型中角色的列名称是什么?
-
我发现使用已知的 id 会更容易
user.role_ids = [2, 3]
标签: ruby-on-rails activerecord associations has-many