首页 > 解决方案 > 设计 URL Rails 的别名

问题描述

我是 Ruby on Rails 的新手,我正在使用 Devise gem 对表 account_user 进行身份验证。当我这样做时,rake routes我得到

new_account_user_session GET /account_users/sign_in(.:format)account_user/sessions#new

所以我的登录页面是xyz.com/account_users/sign_in. 我想将登录页面更改为xyz.com

我的 routes.rb 文件中没有任何相同的路由,我认为 devise 会自动为此生成路由。

有没有办法可以为这个设计生成的路由添加别名/覆盖,或者将用户重定向到xyz.com而不是xyz.com/account_users/sign_in

标签: ruby-on-railsdevise

解决方案


设置root来设计sign_in,所以在你的路由文件中应该有

devise_for :account_users
devise_scope :account_user do
  root to: 'devise/sessions#new'
end

这会将您的根路径设置为 sign_in

或者如果您想将路线重命名为“登录”

devise_for :account_users
devise_scope :account_user do
  get 'login', to: 'devise/sessions#new'
end

更多在这里https://github.com/plataformatec/devise/wiki/How-To:-Change-the-default-sign_in-and-sign_out-routes


推荐阅读