2014-10-29 19 views
0

我有一個名爲do_foo的控制器方法。顯式定義的路由不工作,錯誤狀態「找不到foo id = do_foo」

def do_foo 
    Foo.do_foo 
    respond_to do |format| 
     format.html { redirect_to :back } 
    end 
    end 

routes.rb我:

resources :foos 

...然後我定義:

get "foos/do_foo" => "foos#do_foo", as: :do_foo 

當我耙路線,我有:

do_foo GET /foos/do_foo(.:format)    foos#do_foo 

如果我嘗試點擊鏈接do_foo_path,或如果我嘗試打網址`本地主機:3000/FOOS/do_foo,我得到:

Couldn't find Foo with id=do_foo 

我應該建立在foo's資源這條路堵塞?我會怎麼做?

+0

我剛剛意識到我可以在'routes.rb'中的資源路線上方移動自定義路線。這是合適的解決方案嗎? – 2014-10-29 13:26:42

+0

是的,這是適當的。 – 2014-10-29 13:27:14

回答

1

要回答 「爲什麼」 的失敗:

routes是爲了依賴。您在get路線之前定義resources路線,因此它試圖使用do_foo作爲ID。如果您在resources之前將其移動到之前,它就會起作用。

然而,正如你猜測的那樣,它可能會更好地添加爲一個資源豐富的收集路線。

相關問題