如果我有3个我想连接的模型怎么办?
例如:
用户可以为许多不同的应用程序拥有许多不同的权限。
所以我需要一个表来存储:
user_id
permission_id
application_id
可以使用has_and_belongs_to_many吗?
由于
答案 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
基本上,您可以在ActiveRecord中描述您可以使用关系数据库中的经典一对一,一对多和多对多关系描述的任何关系。
答案 1 :(得分:0)
是的,您可以拥有has_and_belongs_to_many关系。可以在http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html
找到更多帮助