我在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
答案 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 %>