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