Ruby on rails 将Rails路由限制为操作

Ruby on rails 将Rails路由限制为操作,ruby-on-rails,ruby,ruby-on-rails-3,routes,Ruby On Rails,Ruby,Ruby On Rails 3,Routes,假设我有一个UsersController,它包含一个新操作。在我的路线文件中,我映射了以下内容: match 'signup', to: 'users#new' 现在/signup和/users/new都可以访问此操作。如何将其仅限于自定义路线 如果已经回答了,我很抱歉,但我是新来的。我已经找过了,但还没有找到答案。可能是因为我不知道如何简明扼要地表达这一点。您可以从用户资源中豁免新的路由,并将其替换为您的自定义路由: resources :users, except: [:new] get

假设我有一个UsersController,它包含一个新操作。在我的路线文件中,我映射了以下内容:

match 'signup', to: 'users#new'
现在/signup和/users/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

和往常一样,这是简单而美丽的。谢谢你的帮助。现在我听到惯例说要坚持使用资源丰富的路线,但这是否仅仅意味着在控制器级别?使用资源路由比创建自定义路由更合适吗?是的,传统上你应该坚持使用资源路由。考虑到您正在使用
new\u用户名创建一条新路线,所有标准的足智多谋的魔法都应该适用,但一般来说,遵守惯例会减少意外发生的机会。