我有:
Class User < ActiveRecord::Base
has_one :default_permission
end
class DefaultPermission < ActiveRecord::Base
belongs_to :user
belongs_to :permission
end
class Permission < ActiveRecord::Base
has_many :default_permissions
end
哪种方法可以获得特定用户的默认权限?
使用范围?或者我可以执行类似user.defaultpermission.permissions ??
的操作由于
答案 0 :(得分:1)
如果您正确存储了数据,则可以使用:
user.default_permission.permissions
这似乎很复杂 - 这可能是你设计有缺陷的标志。
答案 1 :(得分:0)
你的问题有点矛盾 您已定义has_one default_permission,但您询问如何获取用户的所有default_permissions? 无论我是否误解了你的问题,很明显你的设计缺陷很小 如果要获取用户的所有权限,则需要在权限表上使用相应的user_id定义has_many权限 要么 如果您需要所有默认权限,则需要将has_one默认权限更改为has_many默认权限
就个人而言,我会使用角色而不是权限,并将权限定义为角色类或最符合您要求的人员类的业务逻辑方法
那样你可以定义can_do_something吗?用户类的方法 因此,一个人或用户或任何可以拥有一个或多个角色的用户类can_do_something?方法查看角色并决定是返回true还是false