ruby-on-rails – skip_before_filter忽略条件
发布时间:2020-12-16 19:50:31 所属栏目:百科 来源:网络整理
导读:我正在尝试使用skip_before_filter,只有当应用程序处于生产模式. (我不希望我的开发实例是公开的,我希望应用程序自动检测它是什么类型的实例,并且当它不在生产模式时显示登录屏幕).所以我的应用程序控制器有以下一行: before_filter :authenticate_user!,:e
我正在尝试使用skip_before_filter,只有当应用程序处于生产模式. (我不希望我的开发实例是公开的,我希望应用程序自动检测它是什么类型的实例,并且当它不在生产模式时显示登录屏幕).所以我的应用程序控制器有以下一行:
before_filter :authenticate_user!,:except => "sign_in" #redirects to log-in 而显示页面的控制器有这样的一行: skip_before_filter :authenticate_user!,:only => :show,:if => :in_production #public pages are public,but only when in production. 而生产只是简单的: def in_production ENV['RAILS_ENV']=='production' end 我意识到这里可能有其他的途径,但是我很好奇为什么skip_before_filter似乎忽略了条件,并且总是只跳过before_filter.有没有我失踪的东西? 解决方法
它是一个Rails错误(或至少是一个无证的奇怪行为).在这里跟踪:
https://github.com/rails/rails/issues/9703
在这个线程中,您可以找到(扭曲)解决方案. 代替 skip_before_filter :authenticate_user!,:if => :in_production 写 skip_before_filter :authenticate_user!,:only => :show before_filter :authenticate_user!,:unless => :in_production 它为我工作 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |