has_many :role_assignments
has_many :roles, :through => :role_assignments
has_many :role_assignments
has_many :users, :through => :role_assignments
belongs_to :user
belongs_to :role
validates_presence_of :role_id, :user_id
validates_uniqueness_of :role_id, :scope => :user_id
validates_uniqueness_of :user_id, :scope => :role_id
user = User.new(<params go here>)
role = Role.find_by_name("Foo")
user.roles << role #Blows up here with invalid role_assignment (user_id == nil) (but didn't used to in Oct...)
user.save
user = User.new(<params go here>)
role = Role.find_by_name("Foo")
user.save
user.roles << role
Neither :)
User
Role
RoleAssignment