2010-11-04 72 views
0

還有一些其他的Rails2 - > 3路由問題,但我的複雜程度較低,實際上並沒有給我一個錯誤。那麼爲什麼這個問題?那麼我想確保我沒有使用額外的不必要的代碼。免責聲明:我是Ruby/Rails新手,通過簡單的Rails 2書籍來嘗試修改/計算所有錯誤,希望能夠更深入地理解語言。Rails3路由是最好的方法嗎?

所以我有我的第一個觀點,index.html.erb(在app/views/stories中)。當我最初在localhost上查看它時:3000 /本書的故事說,在將url更改爲localhost:3000/stories/index後,出現錯誤No route matches "/stories",頁面顯示完美。

一看routes.rb中示出了:

Shovell::Application.routes.draw do 
    get "stories/index" 

我現在已經創建了是new.html.erb(在應用程序/視圖/層)的第二視圖:

<% form_for @story do |f| %> 
<p> 
    name:<br /> 
    <%= f.text_field :name %> 
</p> 
<p> 
    link:<br /> 
    <%= f.text_field :link %> 
</p> 
<p> 
    <%= submit_tag %> 
</p> 
<% end %> 

這個視圖不會顯示在我試過的任何URL上。看着服務器日誌,我決定這是一個路線的事情。我改變了的routes.rb這樣:

Shovell::Application.routes.draw do 
    get "stories/index" 
    get "stories/new" 

現在,當我去到localhost:3000 /故事/新的頁面工作正常(雖然這是書中的工作的一部分的方法錯誤)。

我不得不手動輸入每個視圖到routes.rb中,必須有一種方法來設置root並讓它識別那裏的所有文件。我可以這樣做嗎?

回答

1

FYI http://edgeguides.rubyonrails.org/routing.html

root :to => "stories#index" # This means you render the root url by using stories controller and index action 

resources :stories # The standard way to generate a resource (with index, new, edit, show, create, update, destroy actions automatically defined for you and supports some customization) 

所以對於你的情況,實際上是resources :stories給了你所需要的URL。

+0

非常感謝,我之前通讀過這篇邊緣指南,我認爲在某一點上,我有一些像'root => stories/index'這樣的東西,它在正確的軌道上很不錯,但顯然不對。現在一切正常! – tehaaron 2010-11-04 07:04:13