我对skip_before动作有一些问题:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
before_action :require_login
before_action :inc_cookies
def inc_cookies
if cookies[:token] != nil
@name = cookies[:name]
@surname = cookies[:surname]
@user_roomate = cookies[:roomate]
end
end
def require_login
if cookies[:token] == nil
puts "No token"
redirect_to '/'
end
end
end
Run Code Online (Sandbox Code Playgroud)
和我的另一个控制器:
class UsersController < ApplicationController
skip_before_action :require_login, :except => [:landing, :connect, :create]
end
Run Code Online (Sandbox Code Playgroud)
我不知道为什么,但是当我在根(中:从UsersController登陆行动),Rails的尝试在require_login通过......我misundertood一些与此过滤器,还是我什么了吗?
谢谢你的帮助!
Fre*_*ung 42
这对我来说听起来很正常 - 你已经要求rails跳过你之前的动作,除非动作是:landing,:connect或者:create听起来好像你想要相反.如果您希望这3个动作不执行,require_login那么您应该这样做
skip_before_action :require_login, :only => [:landing, :connect, :create]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27065 次 |
| 最近记录: |