2010-10-12 42 views
0

我試圖定義routes.rb路線,我不能做從this Ruby on Rails routing guide任何將讓這個錯誤通過。如何on Rails的定義在Ruby中的路由

No route matches {:controller=>"devise/home"} 

這是我的routes.rb源文件。

SchoolCMS::Application.routes.draw do 
    root :to => "home#index" 

    devise_for :teachers, :admin 

    resources :home, :only => :index 
    resources :admin, :only => :index 

    resources :events do 
    resources :event 
    end 

    resources :posts do 
    resources :comments 
    end 

end 
+1

什麼代碼生成錯誤? – Maran 2010-10-12 19:55:42

+0

<%=的link_to '首頁',:控制器=> '家' %> – dmanexe 2010-10-12 20:04:12

回答

1

爲了安全起見我會刪除devise_for :teachers, :admin和分裂,以便它是

devise_for :teachers 
devise_for :admin 

我不知道,你可以指定多個圖謀你使用它的方式,看看這個修復您的錯誤。

也嘗試使用路徑助手有可能,所以而不是做<%= link_to 'Home', :controller => 'home' %>使它<%= link_to 'Home', homes_path %>但確保你的家定義爲resource :home, :only => :show,因爲它是一個單一的資源。

+0

它無證,但[源代碼(http://github.com/plataformatec/devise/blob/master/lib/devise/rails /routes.rb#L136)似乎表明可以。即使如此,我會嘗試做這個改變,看看是否有什麼事情發生:) – Matchu 2010-10-12 20:28:04

+0

順便說一句,什麼修復了你的錯誤?是devise_for的分裂還是改變了鏈接?我有類似的錯誤...所以試圖排除故障。 – marcamillion 2011-02-27 12:05:04