我有一个数据库架构,其中一个帐户拥有多个用户,但该帐户也属于一个用户,该用户是该帐户的管理员用户。
我通过在accounts表中输入admin_user_id列来表达这种关系。
在协会方面,我希望能够同时写下: 1)user.accounts以获取特定用户创建的所有帐户 2)account.users获取已添加到特定帐户的所有用户
2)已经开始工作了,但是我无法工作。
我尝试将belongs_to :admin_user, class_name: "User", foreign_key: "admin_user_id"
添加到我的帐户模型中,但它不起作用:
class Account < ActiveRecord::Base
# associations
has_many :users
has_many :hotels
belongs_to :admin_user, class_name: "User", foreign_key: "admin_user_id"
end
我该如何做到这一点?
答案 0 :(得分:1)
在用户模型中
has_many :created_accounts, class_name: "Account", foreign_key: "user_id", inverse_of: :admin
has_many :accounts
在帐户模型中
belongs_to :admin, class_name: "User", foreign_key: "user_id"
has_many :users
然后查找某个用户创建的所有帐户:user.created_accounts
要查找创建特定帐户的人,请执行以下操作:account.admin
。
最后使用account.users
,您应该找到属于该帐户的所有用户。