我在文件服务中有多对多关系(HABTM):
class Album < ActiveRecord::Base
has_and_belongs_to_many :media, join_table: 'albums_media'
end
class Medium < ActiveRecord::Base
has_and_belongs_to_many :albums, join_table: 'albums_media'
end
我们有一个包含ActiveResource接口类的gem到该服务中:
class Medium < ActiveResource::Base
...
def albums
Album.where(id: album_ids)
end
end
通过传递album_ids
:
album = Album.create(...)
medium = Medium.create(album_ids: [album.id])
我希望能够从给定的medium
删除某个album
,但ActiveResource并不直接支持此功能。
# not supported...
medium.albums.destroy(...)
我宁愿不使用has_many :through
,因为我不需要直接管理连接,除了做这种事情。
感谢任何见解。
答案 0 :(得分:0)
仅供参考:我最终在文件服务中添加了额外的“join”资源,然后将相应的ActiveResource类添加到gem中。现在我们可以使用API直接管理连接。
这比我想做的更多,但是AR的重量相当轻,并且不支持多对多关系。关键是,它可以完成。