无法管理关联帐户belongs_to用户和帐户has_many用户使用rails

时间:2016-01-26 17:55:20

标签: ruby-on-rails associations

我有一个数据库架构,其中一个帐户拥有多个用户,但该帐户也属于一个用户,该用户是该帐户的管理员用户。

我通过在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

我该如何做到这一点?

1 个答案:

答案 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,您应该找到属于该帐户的所有用户。