Je suis en train de montrer une barre de navigation si l'utilisateur est connectéRailsTutorial.org - Chapitre 8 - signed_in? . Lancer erreur
Dans mon application.html.erb J'ai la ligne <% if signed_in? %>
- qui est à l'origine de l'erreur:
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">`
Voici mon 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
Mon ApplicationController:
class ApplicationController < ActionController::Base
protect_from_forgery
include SessionsHelper
end
Je ne peux pas sembler comprendre pourquoi !current_user.nil?
fracassera la page. Quand je commente !current_user.nil?
dans la méthode signed_in?
peut être appelée sans casser la page. Mais je n'obtiens évidemment pas la valeur signed_in
que j'espérais.
Excellent. Je vous remercie! Comment saviez-vous que c'est là que l'exception a été soulevée? –
il n'y a que 2 appels à: [] dans le code ci-dessus) – sumskyi