2012-05-19 15 views
0

可能重複:
Why do I keep getting a routing error?運行我的Rails應用程序時,爲什麼我一直收到路由錯誤?

對不起林再次問這個,但我沒有得到任何迴應的第一次。

我試圖將註釋添加到從邁克爾·哈特爾railstutorial

https://github.com/railstutorial/sample_app_2nd_ed發現微觀柱這裏是我的routes.rb文件有問題的區域。

resources :microposts, only: [:create, :destroy] do 
    resources :comments, 
    end 

這是我收到的時候我嘗試訪問用戶頁面的錯誤:沒有路由匹配{:控制器=> 「意見」:格式=>零,:micropost_id =>#}

這裏是耙路線|的輸出grep的評論:

  user_comments GET /users/:user_id/comments(.:format)     comments#index 
         POST /users/:user_id/comments(.:format)     comments#create 
     new_user_comment GET /users/:user_id/comments/new(.:format)    comments#new 
    edit_user_comment GET /users/:user_id/comments/:id/edit(.:format)   comments#edit 
      user_comment GET /users/:user_id/comments/:id(.:format)    comments#show 
         PUT /users/:user_id/comments/:id(.:format)    comments#update 
         DELETE /users/:user_id/comments/:id(.:format)    comments#destroy 
    micropost_comments GET /microposts/:micropost_id/comments(.:format)   comments#index 
         POST /microposts/:micropost_id/comments(.:format)   comments#create 
new_micropost_comment GET /microposts/:micropost_id/comments/new(.:format)  comments#new 
edit_micropost_comment GET /microposts/:micropost_id/comments/:id/edit(.:format) comments#edit 
    micropost_comment GET /microposts/:micropost_id/comments/:id(.:format)  comments#show 
         PUT /microposts/:micropost_id/comments/:id(.:format)  comments#update 
         DELETE /microposts/:micropost_id/comments/:id(.:format)  comments#destroy 

最後,這裏是我comments_controller.rb

class CommentsController < ApplicationController 
    def create 
    @micropost = Micropost.find(params[:micropost_id]) 
    @comment = @micropost.comments.build(params[:comment]) 
    @comment.user = current_user 

    if @comment.save 
     redirect_to @micropost 
    else 
     redirect_to @micropost 
    end 
    end 

    def show 
    @comment = Comment.find(params[:id]) 
    end 

    def new 

    end 

    def destroy 
    @comment = Comment.find(params[:id]) 
    @comment.destroy 
    redirect_back_or root_path 
    end 
end 
+0

你試圖訪問哪個網址導致錯誤?它*應該*看起來像'http://foo.com/microposts/ /comments' – x1a4

+0

請分享產生錯誤的網址。 –

+0

你也有一個評論控制器? – Tyler

回答

1

你的路由代碼生成的路線是:

GET /microposts/:micropost_id/comments 
POST /microposts/:micropost_id/comments 
GET /microposts/:micropost_id/comments/new 
GET /microposts/:micropost_id/comments/:id/edit 
GET /microposts/:micropost_id/comments/:id 
PUT /microposts/:micropost_id/comments/:id 
DELETE /microposts/:micropost_id/comments/:id 
POST /microposts 
DELETE /microposts/:id 

所以讓您的意見控制器,你需要發佈到網址/microposts/:micropost_id/comments從一個窗體 - 其中:micropost_id是您想添加註釋的微博的身份證號碼。

你能確認你正在發佈的網址以及你希望它會做什麼嗎?

+0

它是http:// localhost:3000/users/1。我希望它會顯示用戶個人資料頁面,列出微博和相關評論。它適用於問題中github鏈接中的代碼,但我試圖添加的註釋除外 – BigBoy1337

相關問題