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/.