2011-06-06 26 views
0

合計noob質問。単純なルーティングエラー

私は投稿で構成されている簡単なフォトブログをRailsに構築しています。各投稿には独自のID「/ posts/1」があります。私はレール足場を使って投稿を作りました。

"/ posts/index"や "/ posts/anything"のようなURLに行くことができないのは、 "/ posts /"の後に何かをマッチさせようとしているからです。だから私は戻ってのようなエラーが出る:

Couldn't find Post with ID=index 

を私はこれはルートで固定することができ確信しているが、私は私がここで行方不明ですいくつかの大きな映像に問題があることをどのように感じるかと本当にわかりません。

ここから私のアプリのクローンを作成することができます:https://github.com/tbhockey/PhotoBlog

ありがとうございました。

+0

あなたのルートを教えてください。ポスト ルート::コントローラ(:=>「ホーム#インデックス」 試合」に – Spyros

+0

(コメントがコードとしてレンダリングさせる方法がわからない...) ブログ:: Application.routes.drawは リソースを行います/ :action(/:id(.:format))) ' end –

+0

ああ、あなたは一般的なルートを持っています(あなたが好きなら、このコードを表示するために投稿を編集できます) – Spyros

答えて

0

通常、実行中のrake routesはかなり役に立ちます。この場合、インデックスへのルートは/ posts(/ posts/indexではなく)にする必要があります。あなたがrake routesを実行する場合は、おそらくURLが/ポストはあなたのposts_controllerのindexアクションに送られますことを教えしようとしている

posts GET /posts(.:format) {:action=>"index", :controller=>"posts"} 

のようなものが表示されます。また、これはコードでposts_pathまたはposts_urlと呼ばれることがあります。

0

があなたのroutes.rbをのためにこれを行うにしてください:/投稿/ショー/ 1の場合

scope :path => '/posts', :controller => :posts do 
    get 'show/(:id)' => :show, :as => 'show_post' 
    end 

を、それがポストコントローラーのshowアクションを呼び出します。

Railsでルーティングがどのように機能するかを知ることは、常にいいアイデアです。これは非常に重要で、Railsに関する多くのことを理解するのに役立ちます。特に名前付きルートを見ることは、良いRailsプログラミングのためには不可欠です。