【问题标题】:Rails - Path is Routing to View but not seeing the path in RoutesRails - 路径正在路由到视图,但在 Routes 中看不到路径
【发布时间】:2017-05-01 19:46:13
【问题描述】:
我继承了一个 rails 应用程序,所以不知道某些东西是如何设置的。我的应用程序最初是使用注册表单设计的,但后来我删除了该功能。出于某种原因,当我转到 localhost:3000/users/sign_up 时,它仍然会加载该页面。我正在查看路线文件,但没有看到与此相关的任何内容。我相信他们为该应用程序使用了设计,我应该在其他地方寻找吗?我想将对 users/sign_up 的任何请求重定向到站点的根目录。
【问题讨论】:
标签:
ruby-on-rails
devise
routes
【解决方案1】:
听起来您的应用正在使用默认的设计路线。如果您转到您的 routes.rb 文件,您应该会看到如下一行:
devise_for :users
这意味着 Devise 正在为您生成一堆默认路由。如果您在终端中输入rake routes,您会看到类似于以下内容:
new_user_session GET /users/sign_in(.:format) devise/sessions#new
这个和其他类似的用户路由是由 Devise 通过您的 routes.rb 文件中的devise_for :users 生成的。
如果您想自定义 Devise 为您设置的默认路由,您可以在 Devise 文档here 中找到一些有用的信息。他们为您提供了一个如何更改 /users/sign_in 路由的示例,如下所示:
devise_scope :user do
get 'sign_in', to: 'devise/sessions#new'
end
只需更改 'devise/sessions#new' 以指向您要使用的任何控制器操作,如果您希望用户从主页登录,请说 'home#index'。