0

我正在尝试在我的 rails 应用程序上放置一些漂亮的按钮作为链接。但是,我在尝试这样做时遇到了一个奇怪的问题。我试图添加一个链接按钮,如下所示:

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

这会产生一个很好的新按钮,将我的用户引导到注册页面。

这就是奇怪的地方:当我单击按钮时,我被路由到http://localhost:3000/users/sign_up并收到以下错误:

没有路线匹配 [POST] "/users/sign_up"

但这根本不是真的。事实上,我可以突出显示导致我出现该错误的 url,将其复制并粘贴到新选项卡中,然后加载正常。

绝对清楚,这是来自的路径rake routes

new_user_registration GET    /users/sign_up(.:format)       registrations#new

这里可能发生了什么?

任何想法表示赞赏。

4

2 回答 2

3

您的路线期望方法 get where 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) %>
于 2014-12-19T08:27:24.223 回答
1

默认情况下,单击按钮会向POST服务器发送请求。您应该将此行为更改为 send GET

<%= button_to('New', {action: 'new', controller: 'registrations'}, method: :get) %>
于 2014-12-19T08:27:51.930 回答