设置修改配置文件的路线

Posted

技术标签:

【中文标题】设置修改配置文件的路线【英文标题】:setting routes for modifying profile 【发布时间】:2013-03-09 21:20:21 【问题描述】:

我正在尝试了解如何设置新路线,但是我选择的路线不起作用,它只显示“没有路线匹配 [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'

结束 结束

耙路线:

settings_user GET /users/:id/settings(.:format) users#settings GET /users(.:format) users#index POST /users(.:format) users#create GET /users/new(.:format) users#new GET /users/:id/edit(.:format) users#edit GET /users/:id(.:format) users#show PUT /users/:id(.:format) users#update 删除 /users/:id(.:format) users#destroy root / users#new

   settings        /settings(.:format)                 users#settings
      users GET    /users(.:format)                    users#index
            POST   /users(.:format)                    users#create
   new_user GET    /users/new(.:format)                users#new
  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
   sessions GET    /sessions(.:format)                 sessions#index
            POST   /sessions(.:format)                 sessions#create
new_session GET    /sessions/new(.:format)             sessions#new

edit_session GET /sessions/:id/edit(.:format) 会话#edit 会话 GET /sessions/:id(.:format) 会话#show PUT /sessions/:id(.:format) 会话#update 删除 /sessions/:id(.:format) 会话#destroy

【问题讨论】:

您可以使用get 'settings' => 'settings#whatever'resources :settings。不确定我是否正确理解了您的问题。 能否提供rake routes的输出? 【参考方案1】:

试试

resources :users do  
    get 'settings', on: :member  
end

对于 /users/18/settings

match 'settings' => 'users#settings'

对于/设置

【讨论】:

如果他们只想将其映射到GET 请求,他们也可以使用get 而不是match 在使用资源进行获取“设置”时提供未初始化的常量 UserController 错误:用户可以。 @pwz2000 您确定您在路由文件中拼写为 :users 而不是 :user 吗?此外,关于 Sergey 写的 match 行,如果您的控制器是复数形式(即称为 UsersController),则控制器/动作映射应为 users#settings @pwz2000 好的,我看到了您的编辑。我认为你在语法方面有点混淆了。将get 'settings', on: :member 行放在resources :users do 下方,其后应为end。我编辑了 Sergey 的答案以包含更明显的间距。这应该会更清楚。 @pwz2000 对,是的,您需要让 URL 接受 ID 参数。所以你的匹配线看起来像match 'settings/:id

以上是关于设置修改配置文件的路线的主要内容,如果未能解决你的问题,请参考以下文章

javaweb学习路线-myeclipse的配置和Servlet之request和response

怎样修改ES4封装配置文件

macip配置文件位置

虚拟机安装(安装(克隆)虚拟机 配置网络 安装Centos7 配置(修改)虚拟机的静态IP 修改网卡的配置文件 测试网络是否互通外部工具 连接linux系统 设置服务器时间 修改主机名)

npm修改配置与.npmrc文件的作用

Oracle中listener.ora配置文件无法修改