我有三个看起来像这样的表:
user -> id | nickname | email | pass
role -> id | name
user_roles -> id | user_id | role_id
我是这样尝试的,因为一个用户可能有很多角色,我想检查这样的角色:User.roles
。
答案 0 :(得分:2)
这听起来像has_many :through
关联(docs here)的经典用例。具体做法是:
class User < ApplicationRecord
has_many :user_roles
has_many :roles, through: :user_roles
end
class UserRole < ApplicationRecord
belongs_to :user
belongs_to :role
end
class Role < ApplicationRecord
has_many :user_roles
has_many :users, through: :user_roles
end