[rspec-users] Scope and specing models

David Parker nemo7467 at gmail.com
Mon Aug 13 06:51:01 EDT 2007


On 8/12/07, David Parker <nemo7467 at gmail.com> 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
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>


-- 

dp
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://rubyforge.org/pipermail/rspec-users/attachments/20070813/954f6dcb/attachment.html 


More information about the rspec-users mailing list