首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Has_one还是Has_many?

Has_one还是Has_many?
EN

Stack Overflow用户
提问于 2011-07-26 09:04:40
回答 2查看 117关注 0票数 0

我有四个型号。

代码语言:javascript
复制
Application, Permission, User and AppPermissions

我的AppPermission看起来像这样:

代码语言:javascript
复制
AppPermission   Application    Permission   User
      1              1              1         1
      2              1              2         2
      3              1              3         3
      4              1              4         4

因此,一个应用程序可以拥有来自不同用户的不同权限。

代码语言:javascript
复制
Model: AppPermission:
belongs_to :application
belongs_to :permission
belongs_to :user

应用程序、权限和用户如何处理?在哪里使用has_many或has_one?

EN

回答 2

Stack Overflow用户

发布于 2011-07-26 09:12:33

代码语言:javascript
复制
Application:
has_many :users
has_many :permissions

对于用户,您需要更多信息,您是否有多个应用程序?如果是这样,那么:

代码语言:javascript
复制
User:
has_many :applications
has_many :appPermissions

Permission:
has_many :appPermissions
belongs_to :application
票数 0
EN

Stack Overflow用户

发布于 2011-07-26 22:07:58

我没有看到将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)

这些查询所需的全部内容如下:

代码语言:javascript
复制
User:
has_many :app_permissions

AppPermission:
belongs_to :permission
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6824197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档