2012-03-22 4 views
2

私はnoobです。Ruby on Railsの書籍Steve Holznerから学んでいます。彼は、それがRails何かが間違っている...(noob)

class HelloController < ApplicationController 
    def there 
    end 
end 

を言うように、彼はその後、/それにいくつかの単純なHTMLでthere.rhtmlと呼ばれる文書を作成するには、ビューでそれを置くために私に語ったコントローラを編集し、hello_controllerと呼ばれるコントローラを作るために私に指示しますhelloディレクトリ。私が見ハロー/そこ/ 3000、およびHTMLの結果がページに表示されます、 :

Routing Error 

No route matches [GET] "/hello/there" 

Try running rake routes for more information on available routes. 
+0

「レーキルート」の結果は? –

+2

また、読んでいる本の日付をチェックしたいと思うかもしれません - あなたのビューに '.rhtml'を使っているのなら、古いバージョンのRails上です(おそらく2年前、またはさらに長いです!! :-)。 Rails 3.1以上で書かれた本を読んでください。多くの変更がありました。 –

+0

SOに関する別の記事のルートについては、いくつかの素晴らしい説明があります。 [http://stackoverflow.com/questions/5733101/understanding-rails-routes-match-vs-root-in-routes-rb] – Prashanth

答えて

5

はあなたが必要http://guides.rubyonrails.org/routing.html

を参照してください はその後、私はローカルホストに移動し、レール・サーバを起動しますそこのアクションでhelloコントローラへのルートを追加します。あなたのルートファイルに

match '/hello/there' => 'hello#there' 

を追加した場合、ルートのファイルは、たとえば/ route.rb

設定、典型的に、あなたがそれを見るべき/こんにちは/そこにはなりますあなたの正しいコントローラとアクションへのルート。しかし、ここで私があなたに見せているものよりも、ルートについてもっと知る必要があるので、私があなたに与えたリンクを見てください!最速の修正のために

1

、ちょうどあなたのブラウザに次のURLを入力してみてください(エンディングに注意してください):

localhost:3000/hello/there/0 

ケン李は、いくつかの良いアドバイスを与えています。ルートファイルは、パターン/[controller_name]/[action_name]のあとに選択されたいくつかのルートだけを解釈するようにデフォルト設定されている可能性があります。認識できる数少ないアクション名の1つではありません(routes.rbファイルを変更するまで) )。ただし、パターン/[controller_name]/[action_name]/[id]に続くURLのキャッチオールが必要です。

(心配しないでください:。。あなたの行動は、実際にURLの末尾にIDと何もする必要はありません。それは、idが存在している場合は、あなたのレールのアプリがパターンを認識するだけのことだ)

関連する問題