2012-04-07 53 views
0

當我嘗試去這個網址:http://localhost:3000/lessons/18/pages,我得到這個錯誤:沒有路由匹配{:動作=>「秀」,:控制器=>「頁面」}

No route matches {:action=>"show", :controller=>"pages", :lesson_id=>#<Page id: 5, 
title: "Page One", page_num: 1, lesson_id: 18, stats_id: nil, sources_id: nil, 
created_at: "2012-04-06 04:55:39", updated_at: "2012-04-06 04:55:39">} 

我有兩個表:教訓,page.rb

belongs_to :lessons 

lessons.rb

has_many :pages 

的routes.rb

resources :lessons do 
    resources :pages 
end 

的網頁索引看起來是這樣的:

<% @lesson.pages.each do |page| %> 
<tr> 
    <td><%= page.title %></td> 
    <td><%= page.page_num %></td> 
    <td><%= page.lesson_id %></td> 
    <td><%= page.stats_id %></td> 
    <td><%= page.sources_id %></td> 
    <td><%= link_to 'Show', lesson_page_path(page) %></td> 
    <td><%= link_to 'Edit', edit_page_path(page) %></td> 
    <td><%= link_to 'Destroy', lesson_page, confirm: 'Are you sure?', method: :delete %></td> 
</tr> 
<% end %> 

這裏是頁面控制器:

def index 
@lesson = Lesson.find(params[:lesson_id]) 
    respond_to do |format| 
    format.html # index.html.erb 
    format.json { render json: @pages } 
    end 
end 

爲什麼不工作的show路線?

+0

我們可以看到你的路線文件嗎? – 2012-04-07 23:52:05

+0

'rake routes'命令的輸出是什麼(它會向我們展示Rails認爲它具有的所有路徑)? – jefflunt 2012-04-07 23:52:35

回答

3

不同,需要通過在路由中的所有對象嵌套的資源路線:

lesson_page_path(@lesson, page) 

的錯誤是有些發人深省的這個,因爲它表明,它試圖從Page實例得到:lesson_id

相關問題