Ruby on rails Rails:检查用户是否从其他控制器登录
这是我的第一个rails项目。我有一个既有“订户”又有“用户”控制器和模块的web应用程序。 (订阅者仅发送电子邮件,用户已登录) 我试图让用户访问订阅者列表,方法是在订阅者控制器中创建一个“索引”方法,只有登录的用户才能访问 我正试着用这个Ruby on rails Rails:检查用户是否从其他控制器登录,ruby-on-rails,ruby,web-applications,Ruby On Rails,Ruby,Web Applications,这是我的第一个rails项目。我有一个既有“订户”又有“用户”控制器和模块的web应用程序。 (订阅者仅发送电子邮件,用户已登录) 我试图让用户访问订阅者列表,方法是在订阅者控制器中创建一个“索引”方法,只有登录的用户才能访问 我正试着用这个 class SubscribersController < ApplicationController before_filter :signed_in_user, only: [:index] def index @subscribers = Su
class SubscribersController < ApplicationController
before_filter :signed_in_user, only: [:index]
def index
@subscribers = Subscriber.all
end
但它不起作用,因为我无法从订阅者控制器访问已签名的用户。
这样做的“正确”方式是什么
谢谢 在UsersController中包含SessionHelper,以便可以访问该函数
class UsersController < ApplicationController
include SessionsHelper
.......
end
class UsersController
像signed_in这样的函数?在许多控制器中通常需要它们,最好在应用程序控制器本身中包含helper。作为对方向的说明,而不是有两个模型(以及相应的表),为什么不在用户模型中定义一个作用域:
作用域:subscribers,其中(:password=>nil)
?
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
class UsersController < ApplicationController
include SessionsHelper
.......
end