在 运行 之前检查 user_signed_in 是否是 Rails 中的特殊定义
Check if user_signed_in before run the special def in Rails
例如我有定义:def index
、def manage
、def new
。在路线中我有下一个:
if user_signed_in?
def new
end
end
但是我写的时候其他def(index and manage)也要求我登录。我该怎么做才能让新的 def 要求我登录?
路线:
get "/new" => "posts#new"
尝试将此行添加到控制器中
before_filter :authenticate_user!, only: [:new]
如果您确实在使用 Devise,请浏览整个指南。The filters 是您错过的内容。
before_filter :authenticate_user!
是要走的路。
您在问题中所做的是根据用户是否已签名 in/not 的布尔值有条件地定义控制器的操作,这在本质上是一种错误的方法。此外,在控制器class的定义点,没有用户。
例如我有定义:def index
、def manage
、def new
。在路线中我有下一个:
if user_signed_in?
def new
end
end
但是我写的时候其他def(index and manage)也要求我登录。我该怎么做才能让新的 def 要求我登录?
路线:
get "/new" => "posts#new"
尝试将此行添加到控制器中
before_filter :authenticate_user!, only: [:new]
如果您确实在使用 Devise,请浏览整个指南。The filters 是您错过的内容。
before_filter :authenticate_user!
是要走的路。
您在问题中所做的是根据用户是否已签名 in/not 的布尔值有条件地定义控制器的操作,这在本质上是一种错误的方法。此外,在控制器class的定义点,没有用户。