I call a test method on posting data to a signup form
def test_bad_signup
u = User.new
post :signup, :user => { :login => "newbob", :password =>
"newpassword", :password_confirmation => "wrong" , :email
=>
"newbob-pbC8P9QkocYAvxtiuMwx3w@public.gmane.org"}
assert_response :success
assert !u.valid?
assert u.errors.on(:password)
assert_template "user/signup"
assert_nil session[:user]
end
Here is the signup.html.erb
<%= form_tag :action=> "signup" %>
<%= error_messages_for ''user'' %><br/>
<label for="user_login">Username</label><br/>
<%= text_field "user", "login", :size => 20
%><br/>
<label for="user_password">Password</label><br/>
<%= password_field "user", "password", :size => 20
%><br/>
<label for="user_password_confirmation">Password
Confirmation</label><br/>
<%= password_field "user", "password_confirmation", :size
=> 20 %><br/>
<label for="user_email">Email</label><br/>
<%= text_field "user", "email", :size => 20
%><br/>
<%= submit_tag "signup" %>
<% end %>
I get the following error:
test_bad_signup(UserControllerTest):
ActionView::TemplateError:
C:/VR/RailsPrograms/health/app/views/user/signup.html
.erb:24: syntax error, unexpected keyword_ensure, expecting $end
On line #24 of app/views/user/signup.html.erb
21:
22: <% end %>
test/functional/user_controller_test.rb:43:in `test_bad_signup''
C:/Ruby19/lib/ruby/1.9.1/minitest/unit.rb:436:in `run''
C:/Ruby19/lib/ruby/1.9.1/minitest/unit.rb:415:in `block (2 levels)
in run_te
st_suites''
C:/Ruby19/lib/ruby/1.9.1/minitest/unit.rb:409:in `each''
C:/Ruby19/lib/ruby/1.9.1/minitest/unit.rb:409:in `block in
run_test_suites''
C:/Ruby19/lib/ruby/1.9.1/minitest/unit.rb:408:in `each''
C:/Ruby19/lib/ruby/1.9.1/minitest/unit.rb:408:in `run_test_suites''
C:/Ruby19/lib/ruby/1.9.1/minitest/unit.rb:388:in `run''
C:/Ruby19/lib/ruby/1.9.1/minitest/unit.rb:329:in `block in autorun''
Can someone please tell me what is wrong?
--
Posted via http://www.ruby-forum.com/.
--
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.
Frederick Cheung
2010-Jan-29 16:52 UTC
Re: syntax error, unexpected keyword_ensure, expecting $end
On Jan 29, 4:44 pm, Vishwa Rao <li...-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> Here is the signup.html.erb > <%= form_tag :action=> "signup" %>this should be <% form_tag :action=> "signup" do %> as it currently is you have an <% end %> at the bottom of your view but nothing that starts the block. Fred> <%= error_messages_for ''user'' %><br/> > > <label for="user_login">Username</label><br/> > <%= text_field "user", "login", :size => 20 %><br/> > > <label for="user_password">Password</label><br/> > <%= password_field "user", "password", :size => 20 %><br/> > > <label for="user_password_confirmation">Password > Confirmation</label><br/> > <%= password_field "user", "password_confirmation", :size => 20 %><br/> > > <label for="user_email">Email</label><br/> > <%= text_field "user", "email", :size => 20 %><br/> > > <%= submit_tag "signup" %> > <% end %> > > I get the following error: > test_bad_signup(UserControllerTest): > ActionView::TemplateError: > C:/VR/RailsPrograms/health/app/views/user/signup.html > .erb:24: syntax error, unexpected keyword_ensure, expecting $end > On line #24 of app/views/user/signup.html.erb > 21: > 22: <% end %> > test/functional/user_controller_test.rb:43:in `test_bad_signup'' > C:/Ruby19/lib/ruby/1.9.1/minitest/unit.rb:436:in `run'' > C:/Ruby19/lib/ruby/1.9.1/minitest/unit.rb:415:in `block (2 levels) > in run_te > st_suites'' > C:/Ruby19/lib/ruby/1.9.1/minitest/unit.rb:409:in `each'' > C:/Ruby19/lib/ruby/1.9.1/minitest/unit.rb:409:in `block in > run_test_suites'' > C:/Ruby19/lib/ruby/1.9.1/minitest/unit.rb:408:in `each'' > C:/Ruby19/lib/ruby/1.9.1/minitest/unit.rb:408:in `run_test_suites'' > C:/Ruby19/lib/ruby/1.9.1/minitest/unit.rb:388:in `run'' > C:/Ruby19/lib/ruby/1.9.1/minitest/unit.rb:329:in `block in autorun'' > > Can someone please tell me what is wrong? > -- > Posted viahttp://www.ruby-forum.com/.-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Colin Law
2010-Jan-29 16:52 UTC
Re: syntax error, unexpected keyword_ensure, expecting $end
On 29 January 2010 16:44, Vishwa Rao <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> > I call a test method on posting data to a signup form > def test_bad_signup > u = User.new > post :signup, :user => { :login => "newbob", :password => > "newpassword", :password_confirmation => "wrong" , :email => > "newbob-pbC8P9QkocYAvxtiuMwx3w@public.gmane.org"} > assert_response :success > assert !u.valid? > assert u.errors.on(:password) > assert_template "user/signup" > assert_nil session[:user] > end > > Here is the signup.html.erb > <%= form_tag :action=> "signup" %> > <%= error_messages_for ''user'' %><br/> > > <label for="user_login">Username</label><br/> > <%= text_field "user", "login", :size => 20 %><br/> > > <label for="user_password">Password</label><br/> > <%= password_field "user", "password", :size => 20 %><br/> > > <label for="user_password_confirmation">Password > Confirmation</label><br/> > <%= password_field "user", "password_confirmation", :size => 20 %><br/> > > <label for="user_email">Email</label><br/> > <%= text_field "user", "email", :size => 20 %><br/> > > <%= submit_tag "signup" %> > <% end %>Don''t you need a ''do'' somewhere to match the ''end''? Colin> > I get the following error: > test_bad_signup(UserControllerTest): > ActionView::TemplateError: > C:/VR/RailsPrograms/health/app/views/user/signup.html > .erb:24: syntax error, unexpected keyword_ensure, expecting $end > On line #24 of app/views/user/signup.html.erb > 21: > 22: <% end %> > test/functional/user_controller_test.rb:43:in `test_bad_signup'' > C:/Ruby19/lib/ruby/1.9.1/minitest/unit.rb:436:in `run'' > C:/Ruby19/lib/ruby/1.9.1/minitest/unit.rb:415:in `block (2 levels) > in run_te > st_suites'' > C:/Ruby19/lib/ruby/1.9.1/minitest/unit.rb:409:in `each'' > C:/Ruby19/lib/ruby/1.9.1/minitest/unit.rb:409:in `block in > run_test_suites'' > C:/Ruby19/lib/ruby/1.9.1/minitest/unit.rb:408:in `each'' > C:/Ruby19/lib/ruby/1.9.1/minitest/unit.rb:408:in `run_test_suites'' > C:/Ruby19/lib/ruby/1.9.1/minitest/unit.rb:388:in `run'' > C:/Ruby19/lib/ruby/1.9.1/minitest/unit.rb:329:in `block in autorun'' > > Can someone please tell me what is wrong? > -- > Posted via http://www.ruby-forum.com/. > > -- > You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. > For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en. > >-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Vishwa Rao
2010-Jan-29 19:09 UTC
Re: syntax error, unexpected keyword_ensure, expecting $end
Fred, Colin
Thank you very much. I am learning rails very slowly
I corrected the signup.html.erb
<h1>Signup</h1>
<% form_tag :action=> ''signup'' do %>
<%= error_messages_for ''user'' %>
<br/>
<h3>Signup</h3>
<label for="user_login">Username</label><br/>
<%= text_field "user", "login", :size => 20
%><br/>
<label for="user_password">Password</label><br/>
<%= password_field "user", "password", :size => 20
%><br/>
<label for="user_password_confirmation">Password
Confirmation</label><br/>
<%= password_field "user", "password_confirmation", :size
=> 20 %><br/>
<label for="user_email">Email</label><br/>
<%= text_field "user", "email", :size => 20
%><br/>
<%= submit_tag "Signup" %>
<% end %>
here is my login.html.erb
<% form_tag :action=> ''Login'' do %>
<h3>Login</h3>
<label for="user_login">Login:</label><br/>
<%= text_field "user", "login", :size => 20
%><br/>
<label for="user_password">Password:</label><br/>
<%= password_field "user", "password", :size => 20
%><br/>
<%= submit_tag "Submit" %>
<%= link_to ''Register'', :action =>
''signup'' %> |
<%= link_to ''Forgot my password'', :action =>
''forgot_password'' %>
<% end %>
Here is the index.html.erb
<h1>Welcome </h1>
<%= link_to ''Login'' %>
index.html.erb is linked to an application layout file:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" >
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
lang="en" >
<head>
<meta name="Description" content="Your
description"/>
<meta name="KeyWords" content="Your keywords"/>
<meta http-equiv="X-UA-Compatible"
content="IE=8"/>
<meta http-equiv="Content-Style-Type"
content="text/css" />
<meta http-equiv="content-type"
content="text/html;charset=utf-8" />
<title><%= "Your Custom Title" || yield(:title)
%></title>
<%= stylesheet_link_tag(''default.css'') %>
<%= javascript_include_tag(:defaults) %>
<%= yield(:head) -%>
</head>
<body id="Test">
<div id="banner">
<%= image_tag("rails.png") %>
<%= @page_title || "MyApp" %>
</div>
<div id="topbar">
<%= @menus || "Menus.." %>
</div>
<div id="columns">
<div id="side">
<h1> Menu </h1>
</div>
<div id="main">
<%= yield %>
</div>
</div>
</html>
Fnally, the in Route.rb, I have entry like this;
map.login ''Login'', :controller =>
''user'', :action => ''login''
I get to index.hrml.erb and then I click on Login herplink the view does
not change.
The URL at the top of the window changes to http://localhost:3000/home
Here are two of my questions:
(1) I want it to change to http://localhost:3000/user/login where user
is the controller and login is the action
How can I do that?
(2)
Also I was testing the url; http://localhost:3000/user/signup
The command line windows shows these messages;
Processing UserController#signup (for 127.0.0.1 at 2010-01-29 13:02:01)
[POST]
Parameters:
{"authenticity_token"=>"I12vtv4ddgAIDHSnK6VjZAY8hFsh5Sfp8C3gx91VdK
k=", "user"=>{"login"=>"vrao123",
"password"=>"test123",
"password_confirmation"
=>"test123",
"email"=>"vrao123-B4qg7kJ0jjfQT0dZR+AlfA@public.gmane.org"},
"commit"=>"Signup"}
?[4;35;1mUser Columns (0.0ms)?[0m ?[0mSHOW FIELDS FROM `users`?[0m
?[4;36;1mSQL (0.0ms)?[0m ?[0;1mBEGIN?[0m
?[4;35;1mUser Load (0.0ms)?[0m ?[0mSELECT `users`.id FROM `users`
WHERE (`us
ers`.`login` = BINARY ''vrao123'') LIMIT 1?[0m
?[4;36;1mUser Load (0.0ms)?[0m ?[0;1mSELECT `users`.id FROM `users`
WHERE (`
users`.`email` = BINARY
''vrao123-B4qg7kJ0jjfQT0dZR+AlfA@public.gmane.org'') LIMIT 1?[0m
?[4;35;1mSQL (0.0ms)?[0m ?[0mROLLBACK?[0m
Rendering template within layouts/application
Rendering user/signup
Completed in 47ms (View: 0, DB: 0) | 200 OK
[http://localhost/user/signup]
It is not creating an user entry in the database or giving any failure.
Why?
--
Posted via http://www.ruby-forum.com/.
--
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.