2012-03-10 1 views
0

をルーティングで問題が発生しましたエントリ:レール3:Noルートマッチ{::アクション=>「ショー」、:コントローラ=>「イベント」}</p> <p>私の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 %> 

なぜこのエラーが発生するのですか?前もって感謝します!あなたは、私は信じているのいずれかevents_pathまたはevent_path(@event)をしたい

<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

show pageが間違っています。 2つの訂正があります - 1. @curevent@event にする必要があるevents_path

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

私はこれをコードに置き換えましたが、それと同じエラーです。 – turbo2oh

+0

私はそれを理解しました。私のホームページのこれらの修正に加えて、events_pathの代わりにevent_pathへのリンクもありました – turbo2oh

1

は、イベントのための私のindex.html.erbを含めるのを忘れていました。

+0

私の現在のインデックスページコンテンツを本来の質問に追加しました。また、<%= button_to 'Show'、event_path(event)%>と<%= button_to 'Show'、events_path%>を試してみました。 – turbo2oh

1

する必要がありますこれは、イベントのリストに移動するには(あなたは 's' を逃している)<%= button_to "Back",events_path %>でなければなりません。

event_pathが存在する場合は、特定のイベント(エラーメッセージに記載されているshowアクション)を表示するために使用され、Eventとする必要があります。

+0

説明をいただきありがとうございます。私はこれを修正し、私はまだエラーを取得しています。 – turbo2oh

+0

@ turbo2ohあなたのボタンのリンクをチェックすると、これは 'http:// localhost:3000/events'になるはずです – Baldrick

0

あるべき二つのアプローチがあります。最も簡単なのは、新しい一時ディレクトリに移動し、次のコマンドを実行している新しいクリーンのRails 3プロジェクトを作成し、次のようになります。

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

あなたはその後、アプリケーション/設定/ routes.rbを見ることができ、アプリケーション/コントローラ/ events_controller。 rb、およびapps/views/eventsファイルを使用して、scaffoldで作成したファイルと現在のコードとの違いを確認します。

また、既存のコードをデバッグすることもできます。

イベントコントローラが正しく設定されていることを確認するには、コマンドラインでrake routesを実行します。

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

これはショーのコントローラへの正しいパスが実際に存在するとコントローラへのパスは、アプリ/ビュー/イベント/ index.html.erbコードでeventでなければならないことを示している:あなたは、このような行が表示されます。

いつエラーが発生しますか?あなたはイベントのインデックスルートを表示しようとしていますか?