首页 > 解决方案 > 为什么 rails 资源不生成编辑和新路径?

问题描述

我有一个PasswordsController处理密码恢复的问题,我想将它作为一个单一的资源进行路由。

来自路由器的代码:

resource :password

我想使用生成的路由如下:

/password/new    # User enters email
/password/create # Send email with link to password edit form with token
/password/edit   # User edits password
/password/update # Password is changed

但由于某种原因,rails 只生成以下路线:

password GET    /password(.:format) passwords#show
         PATCH  /password(.:format) passwords#update
         PUT    /password(.:format) passwords#update
         DELETE /password(.:format) passwords#destroy
         POST   /password(.:format) passwords#create

根据文档,还应该有一条edit路径和一条new路径。

为什么他们失踪了?

(这是轨道 5.2.1.1)

编辑:正如评论中提到的,问题一定出在我的应用程序配置的某个地方,因为这不能用干净的 Rails 应用程序重现。

标签: ruby-on-railsurl-routing

解决方案


看起来你有一个 api_only 应用程序。在这种情况下,Rails 省略了编辑和新路径。见:https ://github.com/rails/rails/blob/fc5dd0b85189811062c85520fd70de8389b55aeb/actionpack/lib/action_dispatch/routing/mapper.rb#L1230


推荐阅读