Допустим, у нас есть две модели с многие ко многим соотношением:DataMapper Многие-ко-многим Удалить Constraint
class Tag
include DataMapper::Resource
property :id, Serial
has n, :articles, through: Resource
end
class Article
include DataMapper::Resource
property :id, Serial
has n, :tags, through: Resource
end
Теперь, если я создаю статью с тегом: Tag.create(articles: [ Article.create ])
Если я запустите Tag.first.delete
, он возвращает false, поскольку существует ограничение внешнего ключа из-за отношения «многие ко многим». Если я запустил Tag.first.delete!
, он удалит тег, но не запись ассоциации в таблице article_tags
.
Если я использую dm-contraints
и устанавливаю все на :destroy
, он также разрушает статью, которая не то, что я хочу.
я могу сделать
tag = Tag.first
tag.articles = []
tag.save
tag.destroy
, но это, кажется, кажется нечистым. Есть ли способ лучше?
xato, вы нашли лучший способ? – fernandospr