我正在尝试使用 DataMapper 迁移旧数据库,但我遇到了多对多关系的问题。
我有一个Post
和Tag
模型都通过匿名资源。我可以在帖子和标签模型中设置存储库名称,但不能在自动生成的PostTag
模型中设置(据我所知)。有没有办法让它们都使用相同的存储库名称(:legacy
)?
干杯,
汤姆
我正在尝试使用 DataMapper 迁移旧数据库,但我遇到了多对多关系的问题。
我有一个Post
和Tag
模型都通过匿名资源。我可以在帖子和标签模型中设置存储库名称,但不能在自动生成的PostTag
模型中设置(据我所知)。有没有办法让它们都使用相同的存储库名称(:legacy
)?
干杯,
汤姆
您可以为“中间”资源创建一个普通的 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