原创作者: hideto
阅读:1500次
评论:0条
更新时间:2011-05-26
Rails里实现多对多有两种方式:
1,has_and_belongs_to_many
这是最直接的多对多,用中间表categories_products来连接category和product,并且中间表里没有其他字段信息
2,has_many :through
has_many :through这种方式跟habtm的不同是中间表里可以含有其余的字段信息,并且中间表在Model里明确指出
1,has_and_belongs_to_many
# in migration def self.up create_table 'categories_products', :id => false do |t| t.column :category_id, :integer t.column :product_id, :integer end end # models/product.rb has_and_belongs_to_many :categories # models/category.rb has_and_belongs_to_many :products
这是最直接的多对多,用中间表categories_products来连接category和product,并且中间表里没有其他字段信息
2,has_many :through
# models/categorization.rb belongs_to :product belongs_to :category # models/product.rb has_many :categorizations has_many :categories, :through => :categorizations # models/category.rb has_many :categorizations has_many :products, :through => :categorizations
has_many :through这种方式跟habtm的不同是中间表里可以含有其余的字段信息,并且中间表在Model里明确指出
评论 共 0 条 请登录后发表评论