【发布时间】:2011-09-08 12:56:22
【问题描述】:
我定义了一个辅助类如下
module SessionsHelper
def current_user
@current_user= User.find_by_fbid(session[:fbid])
end
def sign_in(user)
session[:fbid] = user.fbid
@current_user = user
end
def signed_in?
!current_user.nil?
end
end
我在我的应用程序控制器中包含了 Helper 类
class ApplicationController < ActionController::Base
protect_from_forgery
include SessionsHelper
end
从会话控制器调用登录方法
class SessionsController < ApplicationController
def create
user = User.find_or_create_by_fbid(params[:user][:fbid])
user.update_attributes(params[:user])
sign_in(user)
redirect_to user_path(user)
end
end
但是我无法从 users#show 视图访问“current_user”变量。
<% if signed_in? %>
<p>
<b>Current User:</b>
<%= current_user.name %>
</p>
<% end %>
它说:nil:NilClass 的未定义方法“名称”
谁能给点建议? 方法 current_user 根本不会从索引中调用。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 session helper session-cookies