我试图在我的rails应用程序上添加一些光滑的按钮作为链接。但是,在我尝试这样做时,我遇到了一个奇怪的问题。我试图按如下方式添加链接按钮:
<%= button_to( "New", :action => "new", :controller => "registrations") %>
这会产生一个很好的新按钮,可以将我的用户定向到sign_up页面。
在这里它变得奇怪:当我点击按钮时,我被路由到http://localhost:3000/users/sign_up
并收到以下错误:
没有路线匹配[POST]&#34; / users / sign_up&#34;
但这根本不是真的。事实上,我可以突出显示那个带给我错误的网址,复制它并将其粘贴到一个新标签中,然后加载就可以了。
绝对清楚,这里是rake routes
:
new_user_registration GET /users/sign_up(.:format) registrations#new
这里可能会发生什么?
任何想法都表示赞赏。
答案 0 :(得分:3)
你的路由期望方法得到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) %>
答案 1 :(得分:1)
默认情况下,单击按钮会向服务器发送POST
请求。您应该更改此行为以发送GET
:
<%= button_to('New', {action: 'new', controller: 'registrations'}, method: :get) %>