Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 有没有办法在rails/activerecord中建立三向habtm关联?_Ruby On Rails_Orm_Activerecord - Fatal编程技术网

Ruby on rails 有没有办法在rails/activerecord中建立三向habtm关联?

Ruby on rails 有没有办法在rails/activerecord中建立三向habtm关联?,ruby-on-rails,orm,activerecord,Ruby On Rails,Orm,Activerecord,habtm关联通常需要三种(或更多)方式的关联。例如,具有角色的权限模型 一个特定的功能领域有许多用户可以访问许多领域 通过角色(habtm)设置该区域的权限 用户/角色关联也是habtm 权限(读、写、删除等)是针对角色的 使用rails/activerecord如何才能最好地做到这一点?(基于角色的身份验证控制)提供了一系列有用的示例,这些示例提供了这个问题的答案,还提供了示例的示例实现。(基于角色的身份验证控制)提供了一系列有用的示例来回答这个问题,还提供了示例的示例实现。我不确定您是否只

habtm关联通常需要三种(或更多)方式的关联。例如,具有角色的权限模型

一个特定的功能领域有许多用户可以访问许多领域

通过角色(habtm)设置该区域的权限

用户/角色关联也是habtm

权限(读、写、删除等)是针对角色的


使用rails/activerecord如何才能最好地做到这一点?

(基于角色的身份验证控制)提供了一系列有用的示例,这些示例提供了这个问题的答案,还提供了示例的示例实现。

(基于角色的身份验证控制)提供了一系列有用的示例来回答这个问题,还提供了示例的示例实现。

我不确定您是否只是在使用基于角色的用户权限作为示例,或者这实际上是您的目标

嵌套的
habtm
关系在Rails中很容易实现,尽管我极力推荐嵌套的
有很多:通过
,只需按照您的想象设置它们:

class Permission < ActiveRecord::Base
end

#this table must have permission_id and role_id 
class PermissionAssignment < ActiveRecord::Base
  belongs_to :permission
  belongs_to :role
end

class Role < ActiveRecord::Base
  has_many :users, :through => :role_assignments
  has_many :permissions, :through => :permission_assignments
end

#this table must have user_id and role_id     
class RoleAssignment < ActiveRecord::Base
  belongs_to :role
  belongs_to :user
end

class User < ActiveRecord::Base
  has_many :roles, :through => :role_assignments
end
类权限:角色\u分配
拥有\u多个:权限,:至=>:权限\u分配
结束
#此表必须具有用户id和角色id
类角色分配:角色\u分配
结束

我不确定您是否只是以基于角色的用户权限为例,或者这是否是您的目标

嵌套的
habtm
关系在Rails中很容易实现,尽管我极力推荐嵌套的
有很多:通过
,只需按照您的想象设置它们:

class Permission < ActiveRecord::Base
end

#this table must have permission_id and role_id 
class PermissionAssignment < ActiveRecord::Base
  belongs_to :permission
  belongs_to :role
end

class Role < ActiveRecord::Base
  has_many :users, :through => :role_assignments
  has_many :permissions, :through => :permission_assignments
end

#this table must have user_id and role_id     
class RoleAssignment < ActiveRecord::Base
  belongs_to :role
  belongs_to :user
end

class User < ActiveRecord::Base
  has_many :roles, :through => :role_assignments
end
类权限:角色\u分配
拥有\u多个:权限,:至=>:权限\u分配
结束
#此表必须具有用户id和角色id
类角色分配:角色\u分配
结束

我不太清楚你在问什么。可能值得添加一些示例代码,说明您希望如何访问数据。假设你所要求的是可能的,举例说明你如何使用它。我不确定你在这里要求什么。可能值得添加一些示例代码,说明您希望如何访问数据。假设你所要求的是可能的,举例说明你如何使用它。