【发布时间】:2014-03-19 05:47:18
【问题描述】:
我正在使用带有导轨的设计。我已经在设计中生成了 User 模型,但我没有 user controller 和 home controller 。我的根页面是devise/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)
我在互联网上找到的解决方案是将其添加到会话控制器 prepend_before_filter :require_no_authentication, :only => [ :new, :create, :cancel ] 中。我的疑问是如何访问会话控制器。它不是在控制器中生成的,它是内置模块,或者有没有其他方法可以解决这个问题。
app/controller/users/session_controller.rb
class Users::SessionsController < Devise::SessionsController
prepend_before_filter :require_no_authentication, :only => [ :new, :create, :cancel ]
end
【问题讨论】:
-
@IshankGupta- 这不是我所期望的。当我运行 localhost:3000 时,它不会重定向到我的根路径。当我想通过omniauth 回调登录时,它不会返回到正确的路径。说重定向太多。 localhost:3000 的网页导致了过多的重定向。
标签: ruby-on-rails ruby ruby-on-rails-3 devise