2012-03-10 69 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

什么时候出现错误?当你试图显示事件索引路线?