Button_to链接导致路由错误
问题描述:
我试图把一些光滑的按钮放在我的rails应用程序中作为链接。但是,我尝试这样做时遇到了一个奇怪的问题。我已经尝试添加一个链接按钮如下:Button_to链接导致路由错误
<%= button_to("New", :action => "new", :controller => "registrations") %>
这将导致一个不错的新按钮,我的用户引导至sign_up页面。
这里的地方会很奇怪:当我点击我排到http://localhost:3000/users/sign_up
按钮,收到以下错误:
No route matches [POST] "https://stackoverflow.com/users/sign_up"
但是这根本不是真的。事实上,我可以突出显示导致我出现此错误的网址,将其复制并粘贴到新标签中,并加载正常。
必须绝对清楚,这里是从rake routes
路径:
new_user_registration GET /users/sign_up(.:format) registrations#new
什么可能是怎么回事呢?
任何想法表示赞赏。
答
您的路由期望方法得到的地方,因为button_to`不应该发送GET请求, 这就是创建问题。
你必须做的事情之后一个
1.更改button_to
到link_to
<%= link_to("New", :action => "new", :controller => "registrations") %>
2.增加:method => :get
<%= button_to("New", {:action => "new", :controller => "registrations"}, :method => :get) %>
答
默认情况下,点击按钮发送POST
请求服务器。你应该改变这种行为发送GET
:
<%= button_to('New', {action: 'new', controller: 'registrations'}, method: :get) %>
很好,谢谢! – neanderslob 2014-12-19 08:32:18