我是在轨道上红宝石的新手。 我使用的命令“轨道生成控制器课程新”与轨道上的红宝石路由问题
然后,我编辑的routes.rb文件:
resources :courses
match '/courses', :to => 'courses#new'
当我访问http://0.0.0.0:3000/courses。我得到一个错误:
未知的动作
行动“索引”不能为CoursesController找到。
我想我错过了一些东西。请帮忙
谢谢。
我是在轨道上红宝石的新手。 我使用的命令“轨道生成控制器课程新”与轨道上的红宝石路由问题
然后,我编辑的routes.rb文件:
resources :courses
match '/courses', :to => 'courses#new'
当我访问http://0.0.0.0:3000/courses。我得到一个错误:
未知的动作
行动“索引”不能为CoursesController找到。
我想我错过了一些东西。请帮忙
谢谢。
线
资源:课程生成路线,像这样的课程:
/courses -> coursescontroller#index
/courses/:id -> coursescontroller#show
...
等。这被称为“宁静路线”。
如果您不想将表单'courses.html'的网址指向您的课程管理员的'索引'操作,而是指向您的课程管理员的'新'操作(这将非常不寻常,通过方式),只需从您的routes.rb中删除第一行。
如果你想看到你定义什么路线,只是做
rake routes
从您的Rails应用程序目录。
你也可以使用这样的:
resources :courses, :except => :index
match '/courses', :to => 'courses#new'
的except
选项接受一个符号或者你不想定义资源将被控制器操作的数组。在这种情况下,我们关闭index
操作的路由,/courses/
。
接下来,我们为index
操作定义相同的路线,但将其指向CoursesController#new
。
将您的“匹配”行放在“资源”行之前。
你可以去命令提示符下的rails文件夹并运行'rake routes'来查看现有的路由。你能在这里粘贴输出吗?我的猜测是'新'默认情况下需要一个ID来处理。但还没有在轨道3上工作。 – Shaunak 2011-05-09 21:04:19