假设我有一个包含 #new 操作的 UsersController。在我的路线文件中,我使用以下内容进行映射:
match 'signup', to: 'users#new'
现在 /signup 和 /users/new 都可以访问此操作。如何将其限制为仅自定义路线。
如果这个问题已经得到回答,我很抱歉,但我对此很陌生。我已经搜索过,但没有找到答案。可能是因为我不知道如何简洁地表达这一点。
假设我有一个包含 #new 操作的 UsersController。在我的路线文件中,我使用以下内容进行映射:
match 'signup', to: 'users#new'
现在 /signup 和 /users/new 都可以访问此操作。如何将其限制为仅自定义路线。
如果这个问题已经得到回答,我很抱歉,但我对此很陌生。我已经搜索过,但没有找到答案。可能是因为我不知道如何简洁地表达这一点。
您可以从用户资源中免除new
路由,并将其替换为您的自定义路由:
resources :users, except: [:new]
get 'signup', to: 'users#new', as: "new_user"
导致:
users GET /users(.:format) users#index
POST /users(.:format) users#create
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
new_user GET /signup(.:format) users#new