On 8/12/07, David Parker <[EMAIL PROTECTED]> wrote: > Hello all, I'm currently having an issue with some specs, specifically scope > issues (probably more of a scope issue than a spec issue at this point)... > Here's the error: > ActiveRecord::AssociationTypeMismatch in 'A new User should > know what role it has' > Role expected, got NilClass > D:/ruby/projects/restful_authentication_test/config/../app/models/role.rb:5:in > `add' > ./spec/models/user_spec.rb:62: > script/spec:4: > > Here's the user.rb > http://pastie.caboo.se/87029 > > role.rb > http://pastie.caboo.se/87030 > > user_spec.rb > http://pastie.caboo.se/87032 > > The code is based off of RESTful authentication + > Ben Curtis' user roles in Rails Application: > http://www.bencurtis.com/archives/2007/06/user-roles -in-rails-applications/ > users.roles is an AssociationProxy, not the Role class, where you have defined the method add(user, role). You should be able to eliminate that method in the Role class and just pass the role on line 62 of your spec:
users.roles.add(role) ____________ I went ahead an eliminated the add method in the role class, and now, with the same spec as above these are the results I get, depending on what I have for line 62... Users.roles.add(role): NameError in 'A new User should know what role it has' uninitialized constant Users User.roles.add(role): NoMethodError in 'A new User should know what role it has' undefined method `roles' for User:Class user.roles.add(role): NoMethodError in 'A new User should know what role it has' undefined method `add' for Role:Class users.roles.add(role): NameError in 'A new User should know what role it has' undefined local variable or method `users' If I go ahead and do something like: users = User.find(:all) before doing users.roles.add(role), then I get: NoMethodError in 'A new User should know what role it has' undefined method `roles' are my associations somehow not registering? > > Thanks for your help! > -- > dp > _______________________________________________ > rspec-users mailing list > [email protected] > http://rubyforge.org/mailman/listinfo/rspec-users > -- dp
_______________________________________________ rspec-users mailing list [email protected] http://rubyforge.org/mailman/listinfo/rspec-users
