[英]NameError in Sessions#new
我收到此錯誤 : when I go to
localhost:3000 / login when I go to
,#<#:0x2db44c8>的undefined local variable or method
session_path'對when I go to
來說沒有太大意義,因為看到的代碼與先前的代碼完全一樣工作的應用程序。
這是相關文件的代碼。
routes.rb
get 'register' => 'users#new', :as => 'register'
get 'login' => 'sessions#new', :as => 'login'
get 'logout' => 'sessions#destroy', :as => 'logout'
resources :users, :path => '/'
root :to => 'users#index'
match '/:id' => 'users#show'
sessions_controller.rb
class SessionsController < ApplicationController
def new
end
def create
user = User.find_by_email(params[:email])
if user && user.authenticate(params[:password])
session[:user_id] = user.id
redirect_to root_url, :notice => 'Logged in!'
else
flash.now.alert = 'Invalid email or password'
render 'new'
end
end
def destroy
session[:user_id] = nil
redirect_to root_url, :notice => 'Logged out!'
end
end
views / sessions / new.html.erb
<h1>Log in</h1>
<%= form_tag sessions_path do %>
<div class="field"></div>
<%= label_tag :email %>
<%= text_field_tag :email, params[:email] %>
</div>
<div class="field"></div>
<%= label_tag :password %>
<%= text_field_tag :password %>
</div>
<div class="actions"><%= submit_tag "Log in"%></div>
<% end %>
你沒有sessions_path
定義-用rake routes
來驗證。 要使用sessions_path
方法,您的路由規范中將需要具有resources :sessions
。
與您的SessionsController
,您的路由文件應類似於...
resources :sessions, :only => [:create]
get 'register' => 'users#new', :as => 'register'
get 'login' => 'sessions#new', :as => 'login'
get 'logout' => 'sessions#destroy', :as => 'logout'
resources :users, :path => '/'
root :to => 'users#index'
match '/:id' => 'users#show'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.