Hello,
I have a User ActiveRecord model and a Group AR model joined by has_many :through Membership. It's not a HBTM because I need an extra attribute for the memberships.
I tried to fill my dev site with some data added via a migration file. I want to create two groups, and add a user to them. Below is the code I use, and a description of the behaviour I don't understand.
Code : - fold - unfold
1. user = User.find_by_email('bob@example.org') 2. 3. group = Group.new 4. group.title = "First group" 5. group.save(false) 6. 7. membership = Membership.new 8. membership.group = group 9. membership.user = user 10. membership.credit = 10 11. membership.save(false) 12. 13. puts "membership 1" 14. user.groups.each do |g| puts g.title end 15. 16. # No problem here, output is : 17. # membership 1 18. # First group 19. 20. group2 = Group.new 21. group2.title = "Second group" 22. group2.save(false) 23. 24. membership2 = Membership.new 25. membership2.group = group2 26. membership2.user = user 27. membership2.credit = 15 28. membership2.save(false) 29. 30. puts "membership 2" 31. user.lists.each do |g| puts g.title end 32. 33. # Output is only : 34. # membership 2 35. # First group 36. 37. user2 = User.find_by_email('bob@example.org') 38. 39. puts "memberships" 40. user2.groups.each do |g| puts g.title end 41. 42. # Output is : 43. # memberships 44. # First group 45. # Second group
Why was my first group dynamically added to the user's groups, and not the second one ?
Thank you for your attention