Note that there are some explanatory texts on larger screens.

plurals
  1. PORuby on Rails Tutorial Lesson 9
    primarykey
    data
    text
    <p>Update Saturday April 23, 2011</p> <p>Lesson is green after implementing the following in user.rb</p> <pre><code>def authenticate_with_salt(id, cookie_salt) user = find_by_id(id) (user &amp;&amp; user.salt == cookie_salt) ? user : nil end </code></pre> <p>I get:</p> <pre><code>Failures: 1) SessionsController POST 'create' success should sign the user in Failure/Error: controller.current_user.should == @user ArgumentError: wrong number of arguments (1 for 2) # ./app/models/user.rb:45:in `authenticate_with_salt' # ./app/helpers/sessions_helper.rb:36:in `user_from_remember_token' # ./app/helpers/sessions_helper.rb:14:in `current_user' # ./spec/controllers/sessions_controller_spec.rb:58:in `block (4 levels) in &lt;top (required)&gt;' Finished in 0.54296 seconds 7 examples, 1 failure </code></pre> <p>I am continuing to investigate... oh the joy! :D</p> <p>EDIT: Working on finishing lesson 9 then will post back here -- seems that im back onto the path finding the problem myself again thanks to GrahamJRoy!</p> <p>Update Friday April 22, 2011 :</p> <p>I've spent the last day trying to find the similar problem but have been sorely unsuccessful, if you need any more information please let me know, both failures are highly likely related to each other so if i fix one i think it will fix the other </p> <pre><code>Failures: 1) SessionsController POST 'create' success should sign the user in Failure/Error: post :create, :session =&gt; @attr NameError: undefined local variable or method `clear_return_to' for #&lt;SessionsController:0x00000101648ac8&gt; # ./app/helpers/sessions_helper.rb:28:in `redirect_back_or' # ./app/controllers/sessions_controller.rb:16:in `create' # ./spec/controllers/sessions_controller_spec.rb:51:in `block (4 levels) in &lt;top (required)&gt;' 2) SessionsController POST 'create' success should redirect to the user show page Failure/Error: post :create, :session =&gt; @attr NameError: undefined local variable or method `clear_return_to' for #&lt;SessionsController:0x00000100ea0690&gt; # ./app/helpers/sessions_helper.rb:28:in `redirect_back_or' # ./app/controllers/sessions_controller.rb:16:in `create' # ./spec/controllers/sessions_controller_spec.rb:57:in `block (4 levels) in &lt;top (required)&gt;' Finished in 0.42858 seconds 7 examples, 2 failures </code></pre> <p>In sessions helper.rb file:</p> <pre><code> def redirect_back_or(default) redirect_to(session[:return_to] || default) clear_return_to end </code></pre> <p>In sessions_controller_spec.rb file:</p> <pre><code> it "should sign the user in" do post :create, :session =&gt; @attr controller.current_user.should == @user controller.should be_signed_in end it "should redirect to the user show page" do post :create, :session =&gt; @attr response.should redirect_to(user_path(@user)) end In sessions_controller.rb file: def create user = User.authenticate(params[:session][:email], params[:session][:password]) if user.nil? flash.now[:error] = "Invalid email/password combination." @title = "Sign in" render 'new' else sign_in user redirect_back_or user end end </code></pre> <p>Original Problem below:</p> <hr> <p>I'm currently working in Lesson 9 on the Ruby on Rails Tutorial and am getting the following error when running autotest:</p> <p>Failures:</p> <pre><code> 1) SessionsController POST 'create' success should sign the user in Failure/Error: post :create, :session =&gt; @attr NoMethodError: undefined method `sign_in' for #&lt;SessionsController:0x000001017082d8&gt; # ./app/controllers/sessions_controller.rb:15:in `create' # ./spec/controllers/sessions_controller_spec.rb:51:in `block (4 levels) in &lt;top (required)&gt;' 2) SessionsController POST 'create' success should redirect to the user show page Failure/Error: post :create, :session =&gt; @attr NoMethodError: undefined method `sign_in' for #&lt;SessionsController:0x00000100ecbca0&gt; # ./app/controllers/sessions_controller.rb:15:in `create' # ./spec/controllers/sessions_controller_spec.rb:57:in `block (4 levels) in &lt;top (required)&gt;' </code></pre> <p>sessions_controller_spec.rb:</p> <pre><code> it "should sign the user in" do post :create, :session =&gt; @attr controller.current_user.should == @user controller.should be_signed_in end it "should redirect to the user show page" do post :create, :session =&gt; @attr response.should redirect_to(user_path(@user)) end </code></pre> <p>IF i comment out the above sessions_controller_spec.rb I will be GREEN! Possibly that will help someone guide me in the right direction as I am clueless!</p> <p>sessions_controller.rb:</p> <pre><code>def create user = User.authenticate(params[:session][:email], params[:session][:password]) if user.nil? flash.now[:error] = "Invalid email/password combination." @title = "Sign in" render 'new' else sign_in user redirect_back_or user end end </code></pre> <p>sessions_helper.rb:</p> <pre><code>def sign_in(user) cookies.permanent.signed[:remember_token] = [user.id, user.salt] self.current_user = user end </code></pre> <p>ADDED per GrahamJRoy 'include SessionsHelper' in application_controller.rb</p> <pre><code>class ApplicationController &lt; ActionController::Base protect_from_forgery include SessionsHelper end </code></pre> <p>2 new errors that I think are leading to my problem:</p> <p>Failures:</p> <pre><code> 1) SessionsController POST 'create' success should sign the user in Failure/Error: post :create, :session =&gt; @attr NoMethodError: undefined method `redirect_back_or' for #&lt;SessionsController:0x0000010405adc0&gt; # ./app/controllers/sessions_controller.rb:16:in `create' # ./spec/controllers/sessions_controller_spec.rb:51:in `block (4 levels) in &lt;top (required)&gt;' 2) SessionsController POST 'create' success should redirect to the user show page Failure/Error: post :create, :session =&gt; @attr NoMethodError: undefined method `redirect_back_or' for #&lt;SessionsController:0x000001030a3c60&gt; # ./app/controllers/sessions_controller.rb:16:in `create' # ./spec/controllers/sessions_controller_spec.rb:57:in `block (4 levels) in &lt;top (required)&gt;' </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload