我正在通过michael hartl的示例教程来学习rails。在他的最终应用程序中,每个人都必须签约做任何事情。我正在尝试创建我的,以便未注册/登录的用户仍可以查看其他用户配置文件及其微博。问题是当前用户在app / helpers / sessions_helper.rb中定义。登录和注销功能基本上是开始或结束会话。
module SessionsHelper
def sign_in(user)
cookies.permanent[:remember_token] = user.remember_token
current_user = user
end
def signed_in?
!current_user.nil?
end
def current_user=(user)
@current_user = user
end
def current_user
@current_user ||= user_from_remember_token
end
def current_user?(user)
user == current_user
end
def signed_in_user
unless signed_in?
store_location
redirect_to signin_path, notice: "Please sign in."
end
end
def sign_out
current_user = nil
cookies.delete(:remember_token)
end
def redirect_back_or(default)
redirect_to(session[:return_to] || default)
clear_return_to
end
所以current_user在应用程序中使用了很多其他地方。这意味着每当我尝试将未签名的用户链接到页面时,无论在哪里使用current_user,都会出现错误,说current_user是未定义的(当然这是真的)。我怎么能解决这个问题呢。有没有办法临时在用户中定义unsigned作为当前用户的形式。我可以在当前用户的定义中添加一些内容吗?
编辑:错误发生在多个地方。任何时候,一个未签名的用户访问使用当前用户的页面,它会给出一个错误,如未定义的方法`admin?'为零:NilClass。这个例子在代码中的某个位置显示current_user.admin?