I’m getting this error that’s driving me up the wall. I don’t see what’s going on… I’ve followed instructions to the T and it’s still complaining – help please!! I’ve got extracts of the error message, controller file, login page and routes file.
Error message
NoMethodError in User_sessions#new
Showing app/views/user_sessions/new.html.erb where line #4 raised:
undefined method `user_sessions_path' for #<ActionView::Base:0x1fe766f>
Extracted source (around line #4):
app/views/user/login.rhtml
4. <% form_for @user_session do |f| %>
5. <%= f.error_messages %>
controller/user_sessions_controller.rb
class UserSessionsController < ApplicationController
before_filter :require_no_user, :only => [:new, :create]
before_filter :require_user, :only => :destroy
def new
@user_session = UserSession.new
end
def create
@user_session = UserSession.new(params[:user_session])
if @user_session.save
flash[:notice] = "Login successful!"
redirect_to root_url
#redirect_back_or_default account_url
else
render :action => :new
end
end
def destroy
current_user_session.destroy
flash[:notice] = "Logout successful!"
redirect_to root_url
#redirect_back_or_default account_url
end
end
user_sessions/new.html.erb
#User Login
<% form_for @user_session do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :Email %><br />
<%= f.text_field :email %>
</p>
<p>
<%= f.label :Password %><br />
<%= f.password_field :password %>
</p>
<p>
<%= f.submit "Submit" %>
</p>
<% end %>
routes.rb file
ActionController::Routing::Routes.draw do |map|
map.login "login", :controller => "user_sessions", :action => "new"
Am I look in in the wrong place??
The problem is your routes file. You’re not doing sessions restfully. So the
<%form_for @user_session%>won’t know how to create a url.Adding
map.resource: user_sessionto routes.rb should fix your problem.You should read through the restful_authentication plugin’s documentation.