Ruby on rails 设置用于修改配置文件的路由

Ruby on rails 设置用于修改配置文件的路由,ruby-on-rails,routes,Ruby On Rails,Routes,我正在尝试了解如何设置新路由,但是我选择的方法不起作用,它只显示了一个“No route matches[GET]”/users/18/settings“” 我想做的是创建一个/settings,它将显示用户在注册页面/users/new上输入的所有信息,并显示在/users/ID/edit上 routes.rb: Dating::Application.routes.draw do get 'signup' => 'users#new' get 'login' => 's

我正在尝试了解如何设置新路由,但是我选择的方法不起作用,它只显示了一个“No route matches[GET]”/users/18/settings“”

我想做的是创建一个/settings,它将显示用户在注册页面/users/new上输入的所有信息,并显示在/users/ID/edit上

routes.rb:

 Dating::Application.routes.draw do
  get 'signup' => 'users#new'
  get 'login' => 'sessions#new'
  get 'logout' => 'sessions#destroy'
  get 'edit' => 'users#edit'
  get "/profile/:id" => "users#show"
  get "profile/:id/settings" => 'users#edit'
  get 'settings', on: :member
  match 'settings' => 'users#settings'

  resources :users do
  resources :sessions
  resources :password_resets
  resources :galleries
  resources :photos

  root to: 'users#new'
  root to: 'galleries#index'
结束 结束

耙道:

设置_userget/users/:id/settings(:format)users#设置 获取/用户(:格式)用户#索引 发布/用户(:格式)用户#创建 获取/用户/新建(:格式)用户#新建 GET/users/:id/edit(:format)users#edit GET/users/:id(:format)users#show PUT/users/:id(:format)用户#更新 删除/用户/:id(:格式)用户#销毁 root/用户#新

编辑会话获取/会话/:id/编辑(:格式)会话#编辑 session GET/sessions/:id(:format)sessions#show PUT/sessions/:id(:format)sessions#update 删除/sessions/:id(:format)sessions#销毁

尝试

resources :users do  
    get 'settings', on: :member  
end
对于/users/18/设置


对于/settings.

您是否可以执行
get'settings'=>“settings#which”
resources:settings
。不确定我是否正确理解了你的问题。请你,提供
rake路由的输出
?如果他们只想将其映射到
get
请求,他们也可以执行
get
而不是
match
。在使用资源执行get“设置”时提供未初始化的常量UserController错误:users do。@pwz2000是否确定在路由文件?另外,关于
match
行,Sergey写道,如果控制器是复数的(意思是称为UsersController),那么控制器/动作映射应该是
users#settings
。@pwz2000 OK我看到了您的编辑。我觉得你有点搞混了,语法方面。将
get'settings',放在::member
行的
资源下面:users do
,后面应该是
end
。我编辑了谢尔盖的答案,加入了更明显的间距。希望这能让事情变得更清楚。@pwz2000是的,您需要让URL接受一个ID参数。因此,您的匹配线看起来类似于
match'settings/:id
resources :users do  
    get 'settings', on: :member  
end
match 'settings' => 'users#settings'