2011-07-26 44 views
0

我有四個模型。Has_one或Has_many?

Application, Permission, User and AppPermissions 

我AppPermission樣子:

AppPermission Application Permission User 
     1    1    1   1 
     2    1    2   2 
     3    1    3   3 
     4    1    4   4 

因此應用程序有不同的用戶不同的權限。

Model: AppPermission: 
belongs_to :application 
belongs_to :permission 
belongs_to :user 

那麼應用程序,權限和用戶呢?在哪裏使用has_many或has_one通過?

+0

你只需要您將使用關聯。你需要實現什麼樣的關係? – Anatoly

回答

0
Application: 
has_many :users 
has_many :permissions 

對於用戶,您需要更多信息,您是否有多個應用程序?如果是這樣的話:

User: 
has_many :applications 
has_many :appPermissions 

Permission: 
has_many :appPermissions 
belongs_to :application 
0

我沒有看到具有三向關聯的has_many :through的用例。對於用戶而言,擁有所有權限而沒有提及他們的用途是什麼?最有可能你會需要這樣的查詢:

user.app_permissions.find_all_by_application_id(application).map(&:permission)

user.app_permissions.find_by_application_id_and_permission_id(application, permission)

所有你需要爲這些查詢:

User: 
has_many :app_permissions 

AppPermission: 
belongs_to :permission