Ruby on rails 修改rails中的管线

Ruby on rails 修改rails中的管线,ruby-on-rails,routes,Ruby On Rails,Routes,我是rails的新用户,所以理解routes.rb的工作原理很复杂!所以我尝试修改一条路线,我得到了一条如下所示的路径: user/:id/edit但我不希望该id出现在路径中 我尝试使用这种方法: get '/users/:id/edit', to: 'users#edit', as: 'users/edit' 但这并没有改变什么。在我的routes.rb中,我得到了: resources :users, only: [:create, :new, :show, :edit] 有人知道怎

我是rails的新用户,所以理解
routes.rb
的工作原理很复杂!所以我尝试修改一条路线,我得到了一条如下所示的路径:
user/:id/edit
但我不希望该id出现在路径中

我尝试使用这种方法:

get '/users/:id/edit', to: 'users#edit', as: 'users/edit'
但这并没有改变什么。在我的
routes.rb中,我得到了:

resources :users,  only: [:create, :new, :show, :edit]

有人知道怎么做吗?我已经看了

如果你已经看了指南,你读过吗

有时,您有一个资源,客户机总是在没有它的情况下查找它 引用ID。例如,您希望/profile始终显示 当前登录用户的配置文件在这种情况下,您可以使用 将/profile(而不是/profile/:id)映射到 显示操作

在应用程序中创建六条不同的路由,所有路由都映射到Geocoders控制器:

GET          /geocoder/new  geocoders#new   return an HTML form for creating the geocoder
POST         /geocoder  geocoders#create    create the new geocoder
GET          /geocoder  geocoders#show  display the one and only geocoder resource
GET          /geocoder/edit geocoders#edit  return an HTML form for editing the geocoder
PATCH/PUT    /geocoder  geocoders#update    update the one and only geocoder resource
DELETE       /geocoder  geocoders#destroy   delete the geocoder resource

如果你已经看了指南,你读到了吗

有时,您有一个资源,客户机总是在没有它的情况下查找它 引用ID。例如,您希望/profile始终显示 当前登录用户的配置文件在这种情况下,您可以使用 将/profile(而不是/profile/:id)映射到 显示操作

在应用程序中创建六条不同的路由,所有路由都映射到Geocoders控制器:

GET          /geocoder/new  geocoders#new   return an HTML form for creating the geocoder
POST         /geocoder  geocoders#create    create the new geocoder
GET          /geocoder  geocoders#show  display the one and only geocoder resource
GET          /geocoder/edit geocoders#edit  return an HTML form for editing the geocoder
PATCH/PUT    /geocoder  geocoders#update    update the one and only geocoder resource
DELETE       /geocoder  geocoders#destroy   delete the geocoder resource
如果你有

resources :users
现在按如下方式改变这条路线

get '/users/edit', to: 'users#edit', as: 'users_edit'
现在,在视图文件中,您有
编辑链接
,将链接更改为

<%= link_to 'Edit', users_edit_path(:id => user.id) %>
就这样,您已经完成了自定义路线,现在路线将是
users/edit,而不是users/:id/edit

resources :users
现在按如下方式改变这条路线

get '/users/edit', to: 'users#edit', as: 'users_edit'
现在,在视图文件中,您有
编辑链接
,将链接更改为

<%= link_to 'Edit', users_edit_path(:id => user.id) %>

就这样,您已经完成了自定义路由,现在路由将是
users/edit而不是users/:id/edit

任何您不希望显示用户id的特定原因。如果你有很多用户,它会让你的应用程序更加RESTful,你可以进行验证,这样用户只能编辑自己的帐户。你能不能也把你的routes.rb的代码写出来。还有,当你说它不会改变什么,你这是什么意思?你是遇到了一个特别的错误还是路线保持不变?@AlexanderSwann Singular resources非常安静。啊,好吧!很高兴知道,谢谢!您不希望出现用户id的任何特定原因。如果你有很多用户,它会让你的应用程序更加RESTful,你可以进行验证,这样用户只能编辑自己的帐户。你能不能也把你的routes.rb的代码写出来。还有,当你说它不会改变什么,你这是什么意思?你是遇到了一个特别的错误还是路线保持不变?@AlexanderSwann Singular resources非常安静。啊,好吧!很高兴知道,谢谢!非常感谢。我修改了我的routes.rb添加了资源地理编码器并修改了我的路由,如下所示:get'/users',to::show,controller:'users',但我遇到了一个错误,没有与[get]“/users/1/edit”匹配的路由,所以我的程序试图找到旧路径,我如何更改它?@Malus change the
*\u path
helper。谢谢!我修改了我的routes.rb添加资源地理编码器并修改了我的路由,如下所示:get'/users',to::show,controller:'users',但我遇到了一个错误,没有与[get]“/users/1/edit”匹配的路由,所以我的程序试图找到旧路径,我如何更改它?@Malus change the
*\u path
helper。