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_tolink_to

<%= link_to("New", :action => "new", :controller => "registrations") %> 

2.增加:method => :get

<%= button_to("New", {:action => "new", :controller => "registrations"}, :method => :get) %> 
+0

很好,谢谢! – neanderslob 2014-12-19 08:32:18

默认情况下,点击按钮发送POST请求服务器。你应该改变这种行为发送GET

<%= button_to('New', {action: 'new', controller: 'registrations'}, method: :get) %>