拥有并拥有3个型号的许多人

时间:2011-07-26 00:20:24

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

如果我有3个我想连接的模型怎么办?

例如:

用户可以为许多不同的应用程序拥有许多不同的权限。

所以我需要一个表来存储:

user_id
permission_id
application_id

可以使用has_and_belongs_to_many吗?

由于

2 个答案:

答案 0 :(得分:5)

我会用has_many来做:通过。

class Upa < ActiveRecord::Base
  belongs_to :user 
  belongs_to :permission 
  belongs_to :application
end
class User < ActiveRecord::Base
  has_many :permissions, :through => :upas
  has_many :applications, :through => :upas
end
class Permission < ActiveRecord::Base
  has_many :users, :through => :upas
  has_many :applications, :through => :upas
end
class Application < ActiveRecord::Base
  has_many :permissions, :through => :upas
  has_many :users, :through => :upas
end

examples of has_many :through

基本上,您可以在ActiveRecord中描述您可以使用关系数据库中的经典一对一,一对多和多对多关系描述的任何关系。

答案 1 :(得分:0)

是的,您可以拥有has_and_belongs_to_many关系。可以在http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

找到更多帮助