ruby - Rails: Routing Error: uninitialized constant SessionController -
i have rails 4.0.10. i'm next michael hartl's ruby on rails tutorial, , i'm trying build login function, i'm getting next error when press login button:
routing error uninitialized constant sessioncontroller
i followed instructions exactly, i'm confused why i'm getting error. did wrong?
my sessions controller:
class sessionscontroller < applicationcontroller def new end def create user = user.find_by(id: params[session][:id]) if user && user.authenticate(params[:session][:password]) log_in user redirect_to root_path else flash.now[:danger] = 'invalid' render 'new' end end def destroy end end
routes:
website::application.routes.draw 'login' => 'sessions#new' post 'login' => 'session#create' delete 'logout' => 'sessions#destroy' "users/new" root 'home_page#home' end
sessions/new view:
<div id= "admin-sign-in"> <%= form_for(:session, url: login_path) |f| %> <%= f.label :id %> <%= f.text_field :id %> <%= f.label :password %> <%= f.password_field :password %> <%= f.submit "log in", class: "btn btn-primary" %> <% end %> </div>
sessions helper:
module sessionshelper def log_in(user) session[:user_id] = user.id end end
user model:
class user < activerecord::base has_secure_password end
users controller:
class userscontroller < applicationcontroller def new @user = user.new @users = user.all end def create @user = user.new(user_params) if @user.save render :action => "crop" else render 'new' end end private def user_params params.require(:user).permit(:password, :password_confirmation) end end
applicationcontroller:
class applicationcontroller < actioncontroller::base protect_from_forgery with: :exception include sessionshelper end
instead of:
post 'login' => 'session#create'
use plural:
post 'login' => 'sessions#create'
ruby-on-rails ruby ruby-on-rails-4 routing routes
No comments:
Post a Comment