J'ai ces deux cours,DataMapper a n par des ressources SUPPRIMER (Retirer de l'association) ne fonctionne pas
class User
include DataMapper::Resource
property :id, Serial
property :name, String
has n :posts, :through => Resource
end
class Post
include DataMapper::Resource
property :id, Serial
property :title, String
property :body, Text
has n :users, :through => Resource
end
Donc une fois que j'ai un nouveau poste comme:
Post.new(:title => "Hello World", :body = "Hi there").save
Je suis ayant de sérieux problèmes à ajouter et à retirer de l'association, comme:
User.first.posts << Post.first #why do I have to save this as oppose from AR?
(User.first.posts << Post.first).save #this just works if saving the insertion later
Et comment dois-je supprimer un message de cette association? J'utilise les éléments suivants, mais sans aucun doute sa ne fonctionne pas:
User.first.posts.delete(Post.first) #returns the Post.first, but nothing happens
User.first.posts.delete(Post.first).save #returns true, but nothing happens
User.first.posts.delete(Post.first).destroy #destroy the Post.first, not the association
Je ne sais vraiment pas comment supprimer du tableau du BoltUser.
Merci pour l'explication Dan, cette méthode que vous avez mentionnée a également fonctionné! Salutations – zanona
Est-ce que create() n'est pas déprécié? Mais je comprends que new() fonctionne maintenant de la même manière pour une collection, de sorte que User.first.posts.new() créera et conservera un enregistrement? – arbales
Non, create() n'est pas obsolète. new() initialise juste la ressource en mémoire. Cependant, il le lie à l'objet parent, ainsi l'enregistrement du parent entraînera la sauvegarde de l'enfant. – dkubb