[rspec-users] Routing error with webrat

Matt Wynne matt at mattwynne.net
Tue Dec 23 05:03:16 EST 2008


On 23 Dec 2008, at 09:04, Juanma Cervera wrote:

> Hello
>
> I am starting using cucumber with an app using restful_authentication.
> I am having an error that is driving me mad.
>
> I am using this step
>
> Given /^que he hecho login en la aplicación$/ do
>  user = User.create!(
>      :login => "mi_login",
>      :name => "mi_nombre",
>      :email => "mi_login at mail.com",
>      :password => 'supersecret',
>      :password_confirmation => 'supersecret' )
>
>  User.find_by_login("mi_login").should_not be_nil
>
>  visit login_path
>  fill_in :login, :with => user.login
>  fill_in :password, :with => 'supersecret'
>  click_button "Log in"
>  response.body.should =~ /Logged/m
> end
>
> The problem is with the sentence click_button "Log in",
> I have the standar new.html.erb template created by the
> restful_authentication plugin
>
> ==== new.html.erb ===========
> <h1>Log In</h1>
>
> <% form_tag session_path do -%>
> <p><%= label_tag 'login' %><br />
> <%= text_field_tag 'login', @login %></p>
>
> <p><%= label_tag 'password' %><br/>
> <%= password_field_tag 'password', nil %></p>
>
> <p><%= submit_tag 'Log in' %></p>
> <% end -%>
>
> ===========================
>
>
> Everything in routes.rb is standar
>
>  map.logout '/logout', :controller => 'sessions', :action => 'destroy'
>  map.login '/login', :controller => 'sessions', :action => 'new'
>  map.register '/register', :controller => 'users', :action => 'create'
>  map.signup '/signup', :controller => 'users', :action => 'new'
>  map.resources :users
>  map.resource :session
>
>
> An the error says something about routing:
>
>  No route matches "/" with {:method=>:get}
> (ActionController::RoutingError)
>
> that occurs when clicking the button.
>
> I have put the error here, in http://pastie.org/345420.
>
> Can somebody give me some light.

The error you're getting seems to suggest that rails can't find a  
route defined for a GET request to "/" which is the homepage of your  
app. I assume this is where the resful authentication plugin wants to  
redirect you after logging you in.

When you set up your routes, did you remember to put in a route for  
the homepage?

e.g. map.root :controller => "home", :action => "index"

HTH,

Matt Wynne
http://blog.mattwynne.net
http://www.songkick.com



More information about the rspec-users mailing list