1

と の簡単なセットアップがAccountあり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 に答える