2012-03-10 97 views
0

我收到以下錯誤麻煩:沒有路由匹配{:動作=>「秀」,:控制器=>「事件」}軌道3:具有與路由

我的routes.rb文件具有以下項:

resources :events 

我events_controller.rb有以下幾點:

def index 
@events = Event.all  
end 

def show 
@event = Event.find(params[:id])  
end 

我型我秀活動頁面有以下幾點:

<h1>SHOW EVENT DETAILS</h1> 
<%= @currevent.name %> 
<br/><br/> 
<%= button_to "Back",event_path %> 

任何想法,爲什麼我得到這個錯誤?提前致謝!

漏填了事件index.html.erb:

<table border="1"> 
<% @events.each do |event| %> 
<tr>  
    <td><%= event.name %></td> 
    <td><%= button_to 'Show', event %></td> 

</tr> 
<% end %> 
</table> 

<br/><br/> 
<%= button_to "Back",home_path %> 

回答

0

顯示頁面出錯了。有2個修正 - 1. @curevent需要是@event 2. event_pathevents_path

<h1>SHOW EVENT DETAILS</h1> 
<%= @event.name %> 
<br/><br/> 
<%= button_to "Back",events_path %> 
+0

我用這個替換了代碼,仍然是相同的錯誤。 – turbo2oh 2012-03-10 18:10:09

+0

我想通了。除了我的主頁上的這些修復程序之外,還有一個鏈接到event_path而不是events_path – turbo2oh 2012-03-10 18:34:42

1

你想要麼events_pathevent_path(@event)我相信。

+0

我剛剛將我當前的索引頁面內容添加到原始問題中。我也嘗試了<%= button_to'Show',event_path(event)%>和<%= button_to'Show',events_path%>,而不是運氣。 – turbo2oh 2012-03-10 18:04:34

1

它應該是<%= button_to "Back",events_path %>(你缺少一個 'S')去的事件列表。

event_path存在的,它是用來顯示一個特定事件(show行動錯誤消息說,你應該給它一個Event)。

+0

感謝您的解釋,現在更有意義。我雖然解決了這個問題,但我仍然遇到了錯誤。 – turbo2oh 2012-03-10 18:16:56

+0

@ turbo2oh檢查你的按鈕的鏈接,它現在應該是'http:// localhost:3000/events' – Baldrick 2012-03-10 18:36:01

0

有兩種方法。最簡單的是去一個新的臨時目錄,並創建一個新的乾淨的Rails 3項目運行以下命令:

cd /tmp 
rails new tst 
cd tst 
rails generate scaffold event 

你可以再看看應用程序/配置/ routes.rb中,應用程序/控制器/ events_controller。 rb和apps/views/events文件來查看腳手架創建文件與當前代碼的不同之處。

或者,您可以嘗試調試您現有的代碼。

在命令行運行rake routes以確認您的事件控制器設置正確。你應該看到這樣一行:

event GET /events/:id(.:format)  {:action=>"show", :controller=>"events"} 

這表明該節目控制器的正確路徑實際存在和路徑控制器應該在你的應用程序/視圖/事件/ index.html.erb代碼event

什麼時候出現錯誤?當你試圖顯示事件索引路線?