2012-03-12 57 views
0

我在heroku上遇到了一個奇怪的錯誤。所以我有一個adress屬於用戶的資源。 用戶可以有多個地址,例如運輸和結算。rails heroku錯誤:未定義路由,但路由存在(您正在查找的頁面不存在。)

當然

resources :adresses 
在我的路線和所有(搭建)的REST控制器動作

現在在我看來,我有以下聲明:

<%= button_to "Edit", edit_adress_path(@adress), :class => "edit_adress funkybutton" %> 

產生下面的HTML:

<form class="button_to" action="/adresses/7/edit?locale=en" method="post"><div><input type="submit" value="Edit" class="edit_adress funkybutton"><input type="hidden" value="d/s1KOUtYao+ieqJN3xAz2jrmGPcvF06LjKKHxnFc+o=" name="authenticity_token"></div></form> 

現在,每當我點擊該按鈕,我得到在Heroku上的一個錯誤頁說

The page you were looking for doesn't exist. 

You may have mistyped the address or the page may have moved. 

當我鍵入heroku logs我得到:

2012-03-12T18:49:02+00:00 app[web.1]: Started POST "/adresses/7/edit?locale=en" for 85.177.82.243 at 2012-03-12 11:49:02 -0700 
2012-03-12T18:49:02+00:00 app[web.1]: 
2012-03-12T18:49:02+00:00 app[web.1]: 
2012-03-12T18:49:02+00:00 app[web.1]: ActionController::RoutingError (No route matches "/adresses/7/edit"): 

這對我來說似乎很奇怪。甚至更奇怪的是,當我點擊我的瀏覽器地址欄後按回車,它顯示編輯表單就好了。所以它的工作原理,但每次我點擊按鈕,我得到這個錯誤信息。我不知道任何可能導致錯誤的地方,並希望有人能夠提供幫助。謝謝!

Btw。我在Rails 3.0.5上

回答

3

button_to正在創建一個POST請求/addresses/7/edit哪個resources未定義路由。當您手動轉到瀏覽器中的鏈接時,它會創建一個GET請求,該請求會路由到編輯操作。

您可以更改button_to呼叫使用GET方法:

<%= button_to "Edit", edit_adress_path(@adress), :class => "edit_adress funkybutton", :method => :get %> 
+1

是啊,好一個感謝! – tmaximini 2012-03-12 19:23:23

相關問題