2017-04-03 223 views
0

我建立像爲什麼會出現以下錯誤?

resources :blogs do 
    resources :comments 
    end 

當我訪問以下

博客嵌套資源/ 1 /評論/ 2,我收到了錯誤

undefined method `comment_url' for #<#<Class:0x4173108>:0x43b45d8> 

這裏是內部意見碼\ comments_comment.json.jbuilder

json.url comment_url(comment, format: :json) 

如何解決?每建議

json.url blog_comments_url(comment.blog, comment, format: :json) 

但是我得到的URL總是喜歡 「URL」

編輯: 「http://localhost:3000/blogs/1/comments.json

我想獲得像 「URL」:「 http://localhost:3000/blogs/1/comments/2.json

回答

1

如果你做一個rake routes,你應該看到這樣的:

blog_comments GET /blogs/:blog_id/comments(.:format)   comments#index          
        POST /blogs/:blog_id/comments(.:format)   comments#create          
new_blog_comment GET /blogs/:blog_id/comments/new(.:format)  comments#new          
edit_blog_comment GET /blogs/:blog_id/comments/:id/edit(.:format) comments#edit          
    blog_comment GET /blogs/:blog_id/comments/:id(.:format)  comments#show          
        PATCH /blogs/:blog_id/comments/:id(.:format)  comments#update          
        PUT /blogs/:blog_id/comments/:id(.:format)  comments#update          
        DELETE /blogs/:blog_id/comments/:id(.:format)  comments#destroy         
      blogs GET /blogs(.:format)       blogs#index           
        POST /blogs(.:format)       blogs#create          
     new_blog GET /blogs/new(.:format)      blogs#new           
     edit_blog GET /blogs/:id/edit(.:format)     blogs#edit           
      blog GET /blogs/:id(.:format)      blogs#show           
        PATCH /blogs/:id(.:format)      blogs#update          
        PUT /blogs/:id(.:format)      blogs#update          
        DELETE /blogs/:id(.:format)      blogs#destroy          

第一列有路徑幫助程序名稱,但沒有_url_path後綴。

:comments資源嵌套您:blogs資源內,以輔助名稱也嵌套:

  • blog_commentscomments
  • new_blog_comment沒有new_comment
  • ...

所以你正在尋找的幫手是blog_comment_url。此外,由於資源被嵌套,助手會想無論是評論和博客作爲參數:

json.url blog_comment_url(comment.blog, comment, format: :json) 
+0

使用json.url blog_comment_url當我遇到錯誤未定義的局部變量或方法'博客」(博客,評論,格式::json) –

+0

我需要修改其他地方像show.json.jbuilder嗎? json.partial! 「評論/評論」,評論:@comment –

+0

我不確定的背景,所以我不得不猜測。也許你可以說'comment.blog'而不是'blog'。 –

相關問題