1

我有一个简单的Accountand设置User

class Account < ActiveRecord::Base
  has_many :users
end

accounts
--------
id
name
...

.

class User < ActiveRecord::Base
  belongs_to :account
end

users
-----
id
account_id
username
...

现在,我如何设计一个Account具有“所有者”(对帐户拥有完全权限的用户)。我能想到的选项:

  1. 在名为的用户上添加一个布尔字段account_owner?(我觉得不对)
  2. accounts在表上添加一个名为 的字段user_id,从而产生一种先有鸡还是先有蛋的问题。
  3. 还有什么?角色?
4

2 回答 2

1

像这样的东西会起作用吗?您需要将owner_id外键添加到Account.

class Account < ActiveRecord::Base
  belongs_to :owner, class_name: "User"
  has_many :users
end

class User < ActiveRecord::Base
  belongs_to :account
end

# Somewhere in your code...

account = Account.create(name: "Account 1")
owner   = User.create(username: "tom")

account.users << owner
account.users << User.create(username: "sarah")
account.owner = owner
account.save
于 2013-02-03T05:39:57.037 回答
0

如果一个帐户可能有多个所有者,您可以向用户添加一个角色列。

@user.account == @account && @user.role == 'admin'
于 2013-02-03T04:48:37.540 回答