2014-12-19 3 views
0

Я пытаюсь поместить некоторые пятновые кнопки в мое приложение rails, чтобы служить в качестве ссылок. Тем не менее, у меня возникает странная проблема в моей попытке сделать это. Я пытался добавить кнопку ссылки следующим образом:Button_to link results to routing error

<%= 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"

Но это просто не соответствует действительности. Фактически, я могу выделить самый URL-адрес, который привел меня к этой ошибке, скопировал его и вставил в новую вкладку, и он загрузился нормально.

Чтобы быть совершенно ясно, вот путь от rake routes:

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

Что может быть здесь происходит?

Любые мысли приветствуются.

ответ

3

Ваши маршруты, ожидающие метода, получают то место, где button_to` не предполагается отправлять запросы GET, Это создает проблему.

вы должны выполнить одно из следующих действий вещь

1.Change button_to в link_to

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

2.Add :method => :get

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

Прекрасно сделано, спасибо! – neanderslob

1

, щелкнув по умолчанию на кнопку посылает POST запрос сервер. Вы должны изменить этот режим, чтобы отправить GET:

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