2016-02-04 7 views
0

У меня есть много-ко-многим (HABTM) в файловой службе:Удалить элемент из отношений ActiveResource :: Коллекция

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 интерфейса в эту службу:

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

FYI: Я закончил добавление дополнительного ресурса «join» в самой файловой службе, а затем добавив соответствующий класс ActiveResource к драгоценному камню. Теперь мы можем просто управлять соединениями напрямую с помощью API.

Было больше работы, чем хотелось бы, но AR соответствует весу и не поддерживает отношения «многие ко многим». Дело в том, что это можно сделать.