2011-07-28 3 views
1

私はthis errorを取得しています0x2db44c8>when I go toはlocalhost:コードを見て、私にはあまり意味を行っていない3000/login`はまさに以前のものと同様ですアプリケーションは動作します。NameErrorは

関連ファイルのコードは次のとおりです。


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 


ビュー/セッション/ 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 %> 
+1

フルエラーが何と言っていますあなたのすることを指しますか? "NameError"は有用ではありませんが、スタックトレースは、何がうまくいかないかに役立つコンテキストを提供することができます。 –

+1

完全なスタックトレースを追加してください。 –

+0

申し訳ありません!私はコードとエラーの説明全体のスクリーンショットを追加しました。 – imjp

答えて

7

あなたは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' 
+1

編集:作成アクションが見つからない – apneadiving

+1

ピーターアンデルセンはそれを上に解決した、私は彼にポイントを得ることができるように彼に言ったが、ああも:P – imjp

+0

なぜ"リソース"?セッションの場合は、一度に一連のセッションを扱うことは決してありません。インデックスなどにセッションをリストすることはありません。 – tokhi