Rails路由:on => :收集失败,但有时只是

时间:2012-02-17 02:16:08

标签: ruby-on-rails-3 rails-routing

一些细节,我在本地使用Ruby 1.8.7 / WEBrick上的Rails 3.2.1,在服务器上使用1.8.7 EE / Passenger)

这是我的问题,我有一个名为foo的控制器,其动作名为bar,我需要创建一个到它的路径。 “bar”通过get访问。

所有文档都说,我这样做:

resources :foo do
  get :bar, :on => :collection
end

当我加载具有以下内容的视图(以haml为单位)时:     = link_to“Bar”,bar_foo_path ,我明白了:

undefined local variable or method `bar_foo_path'  

即使没有意义,我决定改变     :采集 至     :会员 这实际上会允许页面加载,但显然链接爆炸,因为我没有     :ID 添加URL。

但是这是奇怪的部分,如果我然后切换     :会员 回到     :采集 它应该工作......直到我需要重新启动Web服务器,然后它又重新打破了。在本地,这一直是,所以它使这些路线的工作令人沮丧,你可以想象。它也在服务器上中断,因为我显然没有能力在服务器之间切换     :会员 和     :集合

我可以在本地和服务器上按需复制此内容,而真正重要的一切似乎就是从中移除     :会员 至     :采集 (所以我可以先说     :成员并复制问题) 所以请告诉我,我只是在做一些愚蠢的事情,或者我发现了某种错误 :on => :采集 ?

编辑:

仅仅为了澄清,如果我将其切换为更长的形式,也会表现出同样的行为:

resources :foo do
  collection do
    get 'bar'
  end
end

1 个答案:

答案 0 :(得分:0)

嗯,事实证明我应该更多地关注“耙路”。出于某种原因,即使所有文档都说路由应该是“bar_foo_path”,rails认为它是“bar_foo_index_path”。

这并不能解释为什么要翻转它     :会员 然后再回到     :采集 会将路径翻转到预期的“bar_foo_path”,但至少应用程序会运行。