2013-03-18 29 views
0

我最近modified我的Sessions.rb控制器,因爲它在我的應用程序中與Devise Sessions控制器對抗爭霸。它似乎運作良好。正如答案中所述,我修改了我的route.rb。命名空間修改後破壞的形式

現在,我在默認情況下有幾個問題(自腳手架以來沒有太多變化)會話表單。

config/routes.rb 
    namespace :classroom do 
    resources :registrations 
    resources :sessions 
end 

classroom/sessions/index.html.erb 
    <h1>Listing sessions</h1> 

    <table> 
    <tr> 
     <th>Class size</th> 
     <th>Course</th> 
     <th>Description</th> 
     <th>Location</th> 
     <th>Name</th> 
     <th>Price</th> 
     <th></th> 
     <th></th> 
     <th></th> 
    </tr> 

    <% @sessions.each do |session| %> 
    <tr> 
     <td><%= session.class_size %></td> 
     <td><%= session.course_id %></td> 
     <td><%= session.description %></td> 
     <td><%= session.location_id %></td> 
     <td><%= session.name %></td> 
     <td><%= session.price %></td> 
     <td><%= link_to 'Show', session %></td> 
     <td><%= link_to 'Edit', edit_classroom_session_path(session) %></td> 
     <td><%= link_to 'Destroy', session, method: :delete, data: { confirm: 'Are you sure?' } %></td> 
    </tr> 
    <% end %> 
    </table> 
    <br /> 
    <%= link_to 'New Session', new_classroom_session_path %> 

以下鏈接已停止工作,並給出了加載/sessions/index.html.erb

<td><%= link_to 'Show', session %></td> 
td><%= link_to 'Edit', edit_classroom_session_path(session) %></td> 
<td><%= link_to 'Destroy', session, method: :delete, data: { confirm: 'Are you sure?' } %></td> 

輸出運行耙路線時「無法找到一個有效映射」錯誤信息:

classroom_sessions GET /classroom/sessions(.:format)      classroom/sessions#index 
         POST /classroom/sessions(.:format)    classroom/sessions#create 
    new_classroom_session GET /classroom/sessions/new(.:format)   classroom/sessions#new 
edit_classroom_session GET /classroom/sessions/:id/edit(.:format)  classroom/sessions#edit 
     classroom_session GET /classroom/sessions/:id(.:format)   classroom/sessions#show 
         PUT /classroom/sessions/:id(.:format)   classroom/sessions#update 
         DELETE /classroom/sessions/:id(.:format)   classroom/sessions#destroy 

我也不太清楚如何修改「展」和「消滅」的鏈接的一部分,使他們與新的命名空間的工作。預先感謝您的幫助。非常感謝。

感謝, 弗朗西斯

回答

1

嘗試:

<td><%= link_to 'Show', classroom_session_path(session) %></td> 
<td><%= link_to 'Edit', edit_classroom_session_path(session) %></td> 
<td><%= link_to 'Destroy', classroom_session_path(session), method: :delete, data: { confirm: 'Are you sure?' } %></td> 

在這裏看看在一個不錯的答案如何處理鏈接與命名空間的路線:

rails using link_to with namespaced routes

+0

您提供的鏈接實際上解決了另外兩個問題,我計劃了另一個問題。謝謝! – 2013-03-19 00:27:19

+0

沒問題:)' – Zippie 2013-03-19 00:29:28

1

路線的名稱提出了關於路由表的第一列。你應該在鏈接助手上關注它。

他們應該是:

<td><%= link_to 'Show', classroom_session_path(session) %></td> 
<td><%= link_to 'Edit', edit_classroom_session_path(session) %></td> 
<td><%= link_to 'Destroy', classroom_session_path(session), method: :delete, data: { confirm: 'Are you sure?' } %></td> 
+0

嗯。 ..我仍然得到未定義的方法'教室_session'爲#<#:0x007faba9bba 'Show'和'Destroy'link_to上的'588>。 – 2013-03-19 00:12:28

+0

事實上,它在兩個鏈路上都缺少「路徑」。 – 2013-03-19 00:16:53