【发布时间】:2019-12-26 09:39:31
【问题描述】:
“我创建了一个使用 devise gem 提供登录和注册页面的网站。我正在尝试到达 localhost:3000/users/sign_in 这条路径。但它正在重定向到 localhost://3000
“这适用于 ruby 2.5 和 rails 6.0。我尝试了一些可能的方法,例如清除 cookie、重新启动服务器。但我仍然面临同样的问题。”
<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<%= render "devise/shared/error_messages", resource: resource %>
#fields for sign_up page
<% end %>
<%= render "devise/shared/links" %>
“我希望得到登录页面,但它重定向到根 url”
日志
Started GET "/users/sign_in" for 127.0.0.1 at 2019-08-21 13:22:56 +0530
(0.3ms) SET NAMES utf8mb4, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483
(0.3ms) SELECT `schema_migrations`.`version` FROM `schema_migrations` ORDER BY `schema_migrations`.`version` ASC
Processing by Devise::SessionsController#new as HTML
User Load (0.3ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 2 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 16ms (ActiveRecord: 1.6ms | Allocations: 9317)
Started GET "/" for 127.0.0.1 at 2019-08-21 13:22:56 +0530
Processing by Rails::WelcomeController#index as HTML
Rendering /home/parvathy/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/railties-6.0.0/lib/rails/templates/rails/welcome/index.html.erb
Rendered /home/parvathy/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/railties-6.0.0/lib/rails/templates/rails/welcome/index.html.erb (Duration: 7.0ms | Allocations: 315)
Completed 200 OK in 18ms (Views: 13.3ms | ActiveRecord: 0.0ms | Allocations: 1772)
【问题讨论】:
-
我们可以看看你的控制器吗?如何在 /config/routes.rb 中配置到 users/sign_in 的路由?
-
devise_for: users这个我在 routes.rb @PietroAllievi -
能否添加日志以查看重定向
-
我们可以看到
require_no_authentication方法重定向了用户。此设计 before_action 禁用新操作所需的身份验证。你定制了吗? -
其实我没有自定义任何东西。我刚刚创建了一个新应用程序并使用 devise 创建了模型、视图和控制器。它产生了一切。我正在尝试执行那些自动生成的路线。但这些路由正在重定向到根 url。每当我清除我的 cookie 和缓存时,它都会第一次工作。
标签: ruby-on-rails