轻松访问模型中的字段

时间:2011-07-22 20:48:01

标签: ruby-on-rails ruby ruby-on-rails-3

我有:

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 ??

的操作

由于

2 个答案:

答案 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