为什么rails资源不会生成编辑和新路径?

luk*_*kad 2 ruby-on-rails url-routing

我有一个PasswordsController处理密码恢复,我想将其作为一个单一的资源.

来自路由器的代码:

resource :password
Run Code Online (Sandbox Code Playgroud)

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

/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
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,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
Run Code Online (Sandbox Code Playgroud)

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

他们为什么失踪?

(这是rails 5.2.1.1)

编辑:正如评论中所提到的,问题必须存在于我的应用程序配置中,因为使用干净的rails应用程序无法重现.

小智 5

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