2011-05-09 88 views
0

我是在轨道上红宝石的新手。 我使用的命令“轨道生成控制器课程新”与轨道上的红宝石路由问题

然后,我编辑的routes.rb文件:

resources :courses 
    match '/courses', :to => 'courses#new' 

当我访问http://0.0.0.0:3000/courses。我得到一个错误:

未知的动作

行动“索引”不能为CoursesController找到。

我想我错过了一些东西。请帮忙

谢谢。

+0

你可以去命令提示符下的rails文件夹并运行'rake routes'来查看现有的路由。你能在这里粘贴输出吗?我的猜测是'新'默认情况下需要一个ID来处理。但还没有在轨道3上工作。 – Shaunak 2011-05-09 21:04:19

回答

1

线

资源:课程生成路线,像这样的课程:

/courses -> coursescontroller#index 

/courses/:id -> coursescontroller#show 
... 

等。这被称为“宁静路线”。

如果您不想将表单'courses.html'的网址指向您的课程管理员的'索引'操作,而是指向您的课程管理员的'新'操作(这将非常不寻常,通过方式),只需从您的routes.rb中删除第一行。

如果你想看到你定义什么路线,只是做

rake routes 

从您的Rails应用程序目录。

0

你也可以使用这样的:

resources :courses, :except => :index 
match '/courses', :to => 'courses#new' 

except选项接受一个符号或者你不想定义资源将被控制器操作的数组。在这种情况下,我们关闭index操作的路由,/courses/

接下来,我们为index操作定义相同的路线,但将其指向CoursesController#new

0

将您的“匹配”行放在“资源”行之前。