2011-07-26 43 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