How to solve NameError: undefined local variable or method `user'

I am using Ruby 1.9.3 and Rails 3.2.16.

When I run test suite at the end of section 11.2.4 as follow:

bundle exec rspec spec/

I get following error:

  1. Authentication authorization in the Users controller visiting the
    following page
    Failure/Error: before { visit following_user_path(user) }
    NameError:
    undefined local variable or method `user’ for
    #RSpec::Core::ExampleGroup::Nested_7::Nested_3::Nested_3::Nested_2:0x00000006402418

    ./spec/requests/authentication_pages_spec.rb:93:in `block (5

levels) in <top (required)>’

  1. Authentication authorization in the Users controller visiting the
    followers page
    Failure/Error: before { visit followers_user_path(user) }
    NameError:
    undefined local variable or method `user’ for
    #RSpec::Core::ExampleGroup::Nested_7::Nested_3::Nested_3::Nested_3:0x0000000640c2b0

    ./spec/requests/authentication_pages_spec.rb:98:in `block (5

levels) in <top (required)>’

I attach authentication_pages_spec.rb file.

Please find it.

How can I solve this error?

Kind regards.

You haven’t assigned anything to the “user” variable used at line 93
inside
the method call “following_user_path”

You coudl try to create an user using factory girl, inside your current
scope, perhaps using:
let(:user) { FactoryGirl.create(:user) }

Anyway, I strongly recommend that you refactor this spec in order to
make
it DRY and use context blocks in advance of so many describe blocks.

2014-06-03 14:01 GMT-03:00 Jaimin P. [email protected]:

   undefined local variable or method `user' for

Kind regards.
“Ruby on Rails: Talk” group.
To unsubscribe from this group and stop receiving emails from it, send an
email to [email protected]main.invalid.
To post to this group, send email to [email protected]
To view this discussion on the web visit

https://groups.google.com/d/msgid/rubyonrails-talk/84116d65a1e1a910475ba54be20539bd%40ruby-forum.com

.
For more options, visit https://groups.google.com/d/optout.


Att, Antônio Augusto de Sousa Britto - 43ª turma de Ciência da
Computação -
UFU

Antônio Augusto Sousa Britto wrote in post #1148726:

You haven’t assigned anything to the “user” variable used at line 93
inside
the method call “following_user_path”

You coudl try to create an user using factory girl, inside your current
scope, perhaps using:
let(:user) { FactoryGirl.create(:user) }

Anyway, I strongly recommend that you refactor this spec in order to
make
it DRY and use context blocks in advance of so many describe blocks.

Thank you very much for your answer.

I use following code

before { visitfollowing_user_path(FactoryGirl.create(:user)) }

in place of

before { visit following_user_path(user) } at line 93.

Now test is pass.

Is right way? can I move further in that chapter to implement
sample_app?

Kind regards.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs