所以每张照片都有很多战斗,但每场战斗属于两张照片。我如何联想呢......我在想像“belongs_to_many”,但显然不存在。
答案 0 :(得分:2)
从我看到的情况可以通过使用has_and_belongs_to_many
关联
如果您需要将关系模型作为独立实体使用,则应设置has_many :through
关系。如果您不需要对关系模型执行任何操作(可能是这种情况),则设置has_and_belongs_to_many
关系可能更简单
这是你如何做HABTM:
class Picture < ActiveRecord::Base
has_and_belongs_to_many :battles
end
和
class Battle < ActiveRecord::Base
has_and_belongs_to_many :pictures
end
然后您可以致电picture.battles
和battle.pictures
您还需要创建一个类似于此内容的新迁移
class CreateBattlesPicturesJoinTable < ActiveRecord::Migration
def self.up
create_table :battles_pictures, :id => false do |t|
t.integer :battle_id
t.integer :picture_id
end
end
def self.down
drop_table :battles_pictures
end
end
更多信息here
答案 1 :(得分:0)
这是一个多对多关联。您可以通过连接模型实现它。查看API文档中的has_many