我有四个型号。
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 through或has_one through?
答案 0 :(得分:0)
Application:
has_many :users
has_many :permissions
对于用户,您需要更多信息,您是否有多个应用程序?如果是这样的话:
User:
has_many :applications
has_many :appPermissions
Permission:
has_many :appPermissions
belongs_to :application
答案 1 :(得分: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