2013-05-08 76 views
0

對不起,我的跛腳問題,但我堅持。 平原,在我的routes.rb文件簡單,我有:rails默認行爲在路由中缺少參數

resource :books do 
    resource :reviews 
    end 

運行耙路線| grep的評論給我:

books_reviews POST /books/reviews(.:format)  reviews#create 
new_books_reviews GET /books/reviews/new(.:format) reviews#new 
edit_books_reviews GET /books/reviews/edit(.:format) reviews#edit 
        GET /books/reviews(.:format)  reviews#show 
        PUT /books/reviews(.:format)  reviews#update 
        DELETE /books/reviews(.:format)  reviews#destroy 

我的問題是:在顯示和編輯操作中的id參數是哪裏?根據本教程:http://guides.rubyonrails.org/routing.html應該有「身份證」 PARAMS路由,就像這樣:

new_books_reviews GET /books/:id/reviews/new(.:format) reviews#new 
edit_books_reviews GET /books/:id/reviews/edit(.:format) reviews#edit 
         GET /books/:id/reviews(.:format)  reviews#show 

之上那地方是節目,更新路線和破壞行動? 我認爲我錯了一些基本的東西,因爲這真的很糟糕。 Running Rails 3.2.11 感謝您的幫助

回答

2

嘗試使用資源而不是資源。 Rails認爲當您使用單數形式並且不需要該ID時,只有一個。

欲瞭解更多信息請參閱使用的guide

+0

這做到了!我知道我必須犯一些愚蠢的錯誤。非常感謝你! – user2362462 2013-05-08 13:28:56

0

的「奇異資源」部分resources超過resource將確保Rails的佔了很多資源。

你的路線應該是這樣的

resources :books do 
    resources :reviews 
end 
+0

是的,非常感謝你:) – user2362462 2013-05-08 13:39:27