Ruby on rails 带DEVICE gem的滤波器链暂停错误

Ruby on rails 带DEVICE gem的滤波器链暂停错误,ruby-on-rails,ruby,ruby-on-rails-3,devise,Ruby On Rails,Ruby,Ruby On Rails 3,Devise,我正在使用带导轨的Desive。我在Desive中生成了用户模型,但我没有用户控制器和家庭控制器。我的根页面是designe/sessions#new 我的根路径 devise_scope :user do root :to => "users/sessions#new" end devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks", :regis

我正在使用带导轨的Desive。我在Desive中生成了用户模型,但我没有用户控制器和家庭控制器。我的根页面是
designe/sessions#new

我的根路径

 devise_scope :user do
   root :to => "users/sessions#new"
 end
 devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks", :registrations => "users/registrations" }
当我运行localhost:3000时,我得到以下错误

Filter chain halted as :require_no_authentication rendered or redirected. 

Started GET "/" for 127.0.0.1 at 2014-02-19 10:07:46 +0530
Processing by Devise::SessionsController#new as HTML
  User Load (0.2ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 ORDER BY `users`.`id` ASC LIMIT 1
Redirected to http://localhost:3000/
Filter chain halted as :require_no_authentication rendered or redirected
Completed 302 Found in 3ms (ActiveRecord: 0.2ms)
我在internet上找到的解决方案是,在会话控制器
prepend\u之前添加这个过滤器:要求\u无\u身份验证,:only=>[:新建,:创建,:取消]
。我的疑问是如何访问会话控制器。它不是在控制器中生成的,而是内置模块,或者是否有其他方法解决此问题

app/controller/users/session\u controller.rb

class Users::SessionsController < Devise::SessionsController
  prepend_before_filter :require_no_authentication, :only => [ :new, :create, :cancel ]
end
devise_scope :user do
  root to: "users/sessions#new"
end
class Users::SessionsController < Devise::SessionsController
  prepend_before_filter :require_no_authentication, :only => [ :new, :create, :cancel ]
end
class用户::sessioncontroller[:新建,:创建,:取消]
结束

您可以像这样覆盖会话控制器:

路由.rb

class Users::SessionsController < Devise::SessionsController
  prepend_before_filter :require_no_authentication, :only => [ :new, :create, :cancel ]
end
devise_scope :user do
  root to: "users/sessions#new"
end
class Users::SessionsController < Devise::SessionsController
  prepend_before_filter :require_no_authentication, :only => [ :new, :create, :cancel ]
end
app/controller/users/sessions\u controller.rb

class Users::SessionsController < Devise::SessionsController
  prepend_before_filter :require_no_authentication, :only => [ :new, :create, :cancel ]
end
devise_scope :user do
  root to: "users/sessions#new"
end
class Users::SessionsController < Devise::SessionsController
  prepend_before_filter :require_no_authentication, :only => [ :new, :create, :cancel ]
end
class用户::sessioncontroller[:新建,:创建,:取消]
结束

看看@IshankGupta——这不是我所期望的。当我运行localhost:3000时,它不会重定向到我的根路径。当我想通过omniauth回调登录时,它不会返回到正确的路径。说太多重定向。位于的网页导致了太多的重定向。@vanda-我再次遇到同样的错误。我已经更新了我所知道的done@Jeff发生这种情况是因为您已登录。使用
skip\u before\u filter
而不是
prepend\u before\u filter
查看,我发现了真正的错误。在根路径中,我不应该给出登录路径。我需要提到另一条路