Ruby on rails 如何修复RubyonRails中的这个路由错误?

Ruby on rails 如何修复RubyonRails中的这个路由错误?,ruby-on-rails,routing,Ruby On Rails,Routing,我已将这一行放在routes.db文件中: map.mything '/mything', :controller => 'mything', :action => 'list' 但是当我转到时,我得到这个错误,我得到这个错误: Unknown action No action responded to index. Actions: list 为什么它试图使用索引而不是列表?我认为通过设置 :action => 'list' 它会使用列表操作吗?感谢阅读。很抱歉问了一个

我已将这一行放在routes.db文件中:

map.mything '/mything', :controller => 'mything', :action => 'list'
但是当我转到时,我得到这个错误,我得到这个错误:

Unknown action
No action responded to index. Actions: list
为什么它试图使用索引而不是列表?我认为通过设置

:action => 'list'

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

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

同意Jim Schubert的观点,将命名路由置于默认路由之上

另一个可能的问题是,您有以下情况:

map.resources:mything


这是在控制器上设置索引操作,作为构建模型的结果

您必须将命名路由置于默认路由之上

我将这些命名路由放在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

必须将命名路由置于默认路由之上。我在routes.rb的顶部放置了这样的命名路由,因此它们总是首先得到评估。@Jim这很有效,谢谢!本:谢谢,我还为其他有同样问题的人提供了代码。