2012-09-28 91 views
0

嗨,這是我第一次使用嵌套資源。我做了rake routes並找到了一條到new_user_album_path的路徑,但它似乎不起作用。問題可能是因爲我做了一個雙窩?Rails中嵌套資源沒有路由錯誤

問題是我點擊了名爲show.html.erb的用戶視圖文件中的鏈接。試圖鏈接到 「創建相冊」 的頁面,但那個時候,它讓我看到了一個錯誤:

No route matches {:action=>"new", :controller=>"albums"}

這裏是我的文件:

show.html.erb

<% provide(:title, "Welcome, #{@user.name}!") %> 


<div> 
    You currently have <%= pluralize(@user.albums.count, "album") %> 
</div> 

<div> 
    <%= link_to "Create a new album!", new_user_album_path %> 
</div> 

<div> 
<% if @user.albums.any? %> 
hey 
<% else %> 
boo 
<% end %> 

</div> 

<%= link_to "Back", users_path %> 

配置/路線

Pholder::Application.routes.draw do 
resources :users do 
    resources :albums do 
    resources :pictures 
    end 
end 

控制器

class AlbumsController < ApplicationController 
    def index 
    @albums = Albums.all 

    respond_to do |format| 
     format.html 
     format.json { render json: @albums } 
    end 
    end 

    def new 
    @user = User.find(params[:user_id]) 
    end 
end 

回答

1

您需要的用戶傳遞到路線的方法,如:

new_user_album_path(@user) 
+0

感謝!該死的比我想象的要容易 – Edmund

+0

常見錯誤。路由錯誤是你必須學會​​解密的事情之一,因爲它們具有多態性。在這種情況下,傳遞未定義的變量會導致查找不同的,不存在的路徑。 – numbers1311407