rails heroku error:没有定义路由,但是路由在那里(你找的页面不存在。)

时间:2012-03-12 18:58:12

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

我在heroku上遇到了一个奇怪的错误。所以我有一个属于用户的adress资源。 用户可以具有多个地址,例如运费和结算。

当然我有

  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"):

这对我来说似乎很奇怪。更奇怪的是,当我点击我的浏览器地址栏并点击回车后,它会显示编辑表格。所以它可以工作,但每次我点击按钮我都会收到此错误消息。我不知道可能导致错误,并希望有人可以提供帮助。谢谢!

顺便说一下。我在Rails 3.0.5

1 个答案:

答案 0 :(得分: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 %>