我是 Ruby on Rails 的新手。我使用了命令"轨道生成控制器课程新"
然后,我用以下命令编辑了routes.rb文件:
resources :courses
match '/courses', :to => 'courses#new'
当我访问 http://0.0.0.0:3000/courses 时。我收到一个错误:
未知操作
找不到课程控制器的操作"索引"。
我想我错过了一些东西。请帮忙
谢谢。
行
资源 :课程为课程生成如下路线:
/courses -> coursescontroller#index
/courses/:id -> coursescontroller#show
...
等等。这被称为"休息路线"。
如果您不想将表单"courses.html"的 url 定向到课程控制器的"索引"操作,而是定向到课程控制器的"新"操作(顺便说一下,这是非常不寻常的),只需从 routes.rb 中删除第一行。
如果你想看看你定义了什么路由,只需做
rake routes
从您的 Rails 应用程序目录。
你可以改用这个:
resources :courses, :except => :index
match '/courses', :to => 'courses#new'
except
选项在控制器中采用您不希望为其定义资源路由的符号或操作数组。在这种情况下,我们关闭index
操作的路由,/courses/
.
接下来,我们定义为index
操作定义的相同路由,但将其指向 CoursesController#new
。
将"匹配"行放在"资源"行之前。