我正在运行Rails 2.3.8。
我在routes.rb文件中设置了map.resources :users
。
当我运行rake routes
时,它会显示:
users GET /users(.:format) {:action=>"index", :controller=>"users"}
GET /users(.:format) {:action=>"index", :controller=>"users"}
new_user GET /users/new(.:format) {:action=>"index", :controller=>"users"}
edit_user GET /users/:id/edit(.:format) {:action=>"index", :controller=>"users"}
user GET /users/:id(.:format) {:action=>"index", :controller=>"users"}
GET /users/:id(.:format) {:action=>"index", :controller=>"users"}
GET /users/:id(.:format) {:action=>"index", :controller=>"users"}
/:controller/:action/:id
/:controller/:action/:id(.:format)
抱歉格式化。但重点是...... 1)我的“PUT”,“POST”等路线在哪里?,2)为什么一切都指向index
??
非常感谢任何帮助......谢谢!
更新:完整路线档案:
ActionController::Routing::Routes.draw do |map|
map.login "login", :controller => "user_sessions", :action => "new"
map.logout "logout", :controller => "user_sessions", :action => "destroy"
map.resources :users
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
end
我的users_controller拥有所有常用的新建,创建,显示,编辑,更新方法......
答案 0 :(得分:0)
我认为你有两个问题之一:来自rake routes
的输出被你的终端屏幕破坏,或者你的路线被你安装的其他东西覆盖,比如轨道引擎。
第一个很容易检查。听起来你有一个基本的用户脚手架设置(而不是其他)所以启动script/server
,转到http://localhost:3000/users/new。如果您看到新用户页面,则会出现终端显示问题,但您的路线很好。但是,如果您看到用户索引页面,请继续执行下一步。
仔细检查您在上面发布的路线文件确实是您的应用的文件。这听起来很荒谬,但在某些编辑器中,打开错误的文件很容易。例如,在TextMate中,如果您销售了一些宝石并通过命令-T打开路径文件,则可以有多个routes.rb文件可供选择。
如果您确定要查看正确的路由文件,则下一步是检查您的应用程序是否有可能覆盖主文件的任何其他routes.rb文件。从终端,您可以运行find ./ -name routes.rb
,这将列出任何其他路由文件。如果您安装了任何rails引擎,这种情况尤其可能。
让我知道这是怎么回事 - 如果您仍然遇到问题,可以将您的应用程序压缩并通过电子邮件发送给我,我会看看。