1
我試圖展現一個導航欄,如果用戶在簽署RailsTutorial.org - 第8章 - signed_in? 。拋出錯誤
在我application.html.erb我也行 <% if signed_in? %>
- 這是造成錯誤:
NoMethodError in Static_pages#home
undefined method '[]' for nil:NilClass
Extracted source (around line #16):
13: </head>
14: <body>
15:
16: <% if signed_in? %>
17: <div class="navbar navbar-fixed-top">
18: <div class="navbar-inner">
19: <div class="container">`
這裏是我的SessionsHelper:
def sign_in(user)
cookies.permanent[:remember_token] = user.remember_token
self.current_user = user
end
def signed_in?
!current_user.nil?
end
def current_user=(user)
@current_user = user
end
def current_user
puts 'current_user called'
@current_user ||= User.find_by_remember_token(cookies.permanent[:remember_token])
end
def sign_out
self.current_user = nil
cookies.delete(:remember_token)
end
我的ApplicationController:
class ApplicationController < ActionController::Base
protect_from_forgery
include SessionsHelper
end
我似乎無法找出爲什麼!current_user.nil?
更是打破了網頁。當我註釋掉!current_user.nil?
中的signed_in?
方法可以在不中斷頁面的情況下調用。但我顯然沒有得到我期待的價值。
非常好。謝謝!你怎麼知道這是異常提出的地方? –
在上面的代碼中只有2個調用:[]) – sumskyi