这是我的第一个 Rails 项目。我有一个带有“订阅者”和“用户”控制器和模块的网络应用程序。(订阅者只提供他们的电子邮件,用户已登录)
我试图让用户访问订阅者列表,方法是在订阅者控制器中创建一个“索引”方法,只有登录的用户才能访问。
我正在尝试使用它来做到这一点
class SubscribersController < ApplicationController
before_filter :signed_in_user, only: [:index]
def index
@subscribers = Subscriber.all
end
其中 signed_in_user 定义如下:
class UsersController < ApplicationController
def signed_in_user
unless signed_in?
store_location
redirect_to signin_url, notice: "Please sign in."
end
end
和签到?在会话助手中:
模块 SessionsHelper def sign_in(user) cookies.permanent[:remember_token] = user.remember_token self.current_user = user end
def current_user=(user)
@current_user = user
end
def current_user
@current_user ||= User.find_by_remember_token(cookies[:remember_token])
end
def signed_in?
!current_user.nil?
end
但它不起作用,因为我无法从订阅者控制器访问 signed_in_user。这样做的“正确”方法是什么?
谢谢!