Tag: 在过滤之前

设计:无法关闭require_no_authentication?

当我尝试限制注册访问时,似乎不可能。 我试过了 class RegistrationsController < Devise::RegistrationsController skip_before_filter :require_no_authentication end 在app / registrations_controller.rb中并​​将路由更改为 devise_for :accounts, :controllers => { :registrations => “registrations” } 这不起作用。 任何建议为什么以及我能做什么/我应该在哪里看,将不胜感激。 编辑: 不起作用意味着:当我在注销时尝试访问/ accounts / sign_up时,它确实有效,但我应该重定向到sign_in。 解决方法: class RegistrationsController < Devise::RegistrationsController skip_before_filter :require_no_authentication private def authenticate_account!(opts={}) opts[:scope] = :account warden.authenticate!(opts) # if !devise_controller? || opts.delete(:force) end end 这将删除跳过对每个Devise控制器的身份validation的硬编码检查。 代码来自lib/devise/controllers/helpers.rb 。

首次进入站点的根时设计身份validation错误

当用户输入我们网站的根目录或注销时,Devise身份validation显示“您需要首次登录或注册才能继续”。 页面重新加载后,此消息消失。 我们网站的根目录设置为控制器,它具有: before_filter :authenticate_user! 我们需要这个控制器作为根。 如何消除此消息?

在多个控制器之间共享一个before_filter的位置

我有多个控制器都使用相同的before_filter。 为了保持干燥,这种方法应该放在哪里,以便所有控制器都可以使用它? 一个模块似乎不是正确的地方,虽然我不知道为什么。 我不能把它放在基类中,因为控制器已经有不同的超类。