2011-05-09 82 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

將您的「匹配」行放在「資源」行之前。