如何在Ruby on Rails中修复此路由错误?

时间:2010-06-28 01:59:51

标签: ruby-on-rails routing

我把这行放在我的routes.db文件中:

map.mything '/mything', :controller => 'mything', :action => 'list'

但是当我转到http://localhost:3000/mything时出现此错误,我收到此错误:

Unknown action
No action responded to index. Actions: list

为什么要尝试使用索引而不是列表?我想通过设置

:action => 'list'

它会使用列表操作吗?谢谢你的阅读。

3 个答案:

答案 0 :(得分:1)

同意Jim Schubert,将命名路线置于默认路线之上。

另一个可能的问题是你有类似的东西:

map.resources :mything

由于您构建模型

而在控制器上设置索引操作

答案 1 :(得分:1)

您必须将命名路由放在默认路由之上。

我将这些命名路由放在routes.rb的顶部,这样它们总是先被评估。

ActionController::Routing::Routes.draw do |map| 
  map.about 'about', :controller => 'home', :action => 'about'
  map.contact 'contact', :controller => 'home', :action => 'contact'

  # MORE CONFIG

  map.connect ':controller/:action/:id'
  map.connect ':controller/:action/:id.:format'
end

答案 2 :(得分:0)

很抱歉提出一个可能很明显的问题,但您是否尝试重新启动应用?在重新启动应用程序之前,某些路由不会注册(RESTful资源永远不需要重新启动应用程序,但其他人通常会这样做。)