Ruby on rails 我的路线有资源:家,但rspec说路线没有定义?

Ruby on rails 我的路线有资源:家,但rspec说路线没有定义?,ruby-on-rails,rspec,Ruby On Rails,Rspec,我的家庭控制器有: def about() end 我有一个rspec测试,它确实得到了“关于”,但它失败了,说没有匹配的路由 这不映射控制器中的所有操作: resources :home 还是必须在主控制器中明确说明每个操作?参考资料将为控制器提供7种CRUD方法,如果需要其他操作,则需要执行以下操作: resources :homes do collection do match "about" => "homes#about", :as => "about"

我的家庭控制器有:

def about()
end
我有一个rspec测试,它确实得到了“关于”,但它失败了,说没有匹配的路由

这不映射控制器中的所有操作:

resources :home

还是必须在主控制器中明确说明每个操作?

参考资料将为控制器提供7种CRUD方法,如果需要其他操作,则需要执行以下操作:

resources :homes do 
  collection do
    match "about" => "homes#about", :as => "about"
  end
end

然后,您还将有一个附加的“关于主页”路径/url帮助程序可用。

参考资料:主页设置默认的RESTful路由-索引、显示、新建、创建、编辑、更新和销毁。必须指定任何其他路线。看起来您正在添加一个简单的收集路由,因此您可以这样指定它:

resources :home
  collection do
    get 'about'
  end
end
这将为您提供路线“/home/about”。我想这是Rails 3。如果您使用的是Rails 2.x,请这样做:

map.resources :home, :collection => {:about => :get}
在命令行中,您始终可以看到使用此命令可以使用的路由:

rake routes
我希望这有帮助

编辑:如果需要默认路线,可以添加以下内容:

match ':controller(/:action(/:id))'
这是一个默认路由,将匹配任何通用请求

全文:Rails 3中的路由是它自己的野兽。最近有很多关于它的问题,因此我创建了一篇非常详细的文章,其中包含代码示例,以帮助其他人:

我创建了一个配套的Rails 3应用程序,可以下载来玩:


如果你有任何问题,请访问我的网站并提问。谢谢

应该有一种方法可以自动将它们连接起来,但奇怪的是,没有一种方法可以这样做…这是否给了我一个关于\u homes\u path的url帮助程序?对不起,请阅读您的另一个问题。选中
rake routes
,它确实会提供您询问的路线。使用上面列出的默认路线不会。因此,使用显式路由还有另一个很好的理由。