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. Thanks. -- Posted via http://www.ruby-forum.com/.
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
Thanks Matt. You were right, I have modified routes.rb with mapping root url but I did''t understand why this is needed. The create action in sessions controller is completely standar. The sentence that is causing the error redirect_back_or_default(''/'') is not using thr root_url. I think this is a bug, but I don''t know. Cheers and many thanks. Juanma Cervera. -- Posted via http://www.ruby-forum.com/.
> I think this is a bug, but I don''t know.Well, I see all more clear now. I thought it was a bug because I thought it was failing only when running the feature, and it worked without problem hitting the application with the browser. But this was not true. It worked because I had index.html in /public folder , when I removed it, I has the same error. Juanma Cervera -- Posted via http://www.ruby-forum.com/.