0

我正在尝试使用 DataMapper 迁移旧数据库,但我遇到了多对多关系的问题。

我有一个PostTag模型都通过匿名资源。我可以在帖子和标签模型中设置存储库名称,但不能在自动生成的PostTag模型中设置(据我所知)。有没有办法让它们都使用相同的存储库名称(:legacy)?

干杯,
汤姆

4

1 回答 1

1

您可以为“中间”资源创建一个普通的 DM 模型,以便能够定义存储库名称,例如

model PostTag
  include DataMapper::Resource
  def self.default_repository_name; :legacy end
  belongs_to :post, :key => true
  belongs_to :tag, :key => true
end

并在这两个父母中,定义与 a 的联系:through。例如,

model Post
  # other definitions ...
  has n, :post_tags
  has n, :tags, :through => :post_tags
end
于 2013-03-11T12:27:13.533 回答