Rails button_to терпит неудачу с путем не существует для пути, который существует - PullRequest
5 голосов
/ 07 марта 2011

Написание моего первого, очень простого приложения на Rails, простого приложения администратора для отслеживания работы одного из наших отделов.Сгенерированная страница индекса для людей имеет ссылку для добавления нового человека.Я попытался изменить это на button_to, и он не может сказать, что путь / people / new не существует, хотя, очевидно, он существует, так как link_to идет в то же место.

Я использую Rails 3 / Ruby 1.9.2.У меня есть этот код на моей /app/views/people/index.html.erb странице:

<%= link_to 'New Person', new_person_path %>
<%= button_to "New", :controller => "people", :action => "new" %>

Ссылка_ работает.Button_to терпит неудачу с этим:

Ошибка маршрутизации Не найдено ни одного маршрута "/ people / new"

Также попытался просто

<%= button_to 'New Person', new_person_path %>

Та же ошибка.Одд.

Ответы [ 4 ]

9 голосов
/ 07 марта 2011

button_to по умолчанию используется метод post.Попробуйте положить туда :method => :get.Вот почему link_to работает.

3 голосов
/ 07 марта 2011

Этому есть хорошее объяснение, как всегда:)

link_to использует GET по умолчанию, где button_to использует POST. И нет соответствующего POST-маршрута, только GET-маршрут.

Если вы хотите использовать button_to, вы можете добавить :method => :get к вашим параметрам кнопок, и он будет использовать GET.

0 голосов
/ 07 марта 2011

Ваш button_to находится внутри формы?button_to создает собственную форму, так что это создает форму внутри формы и может нарушить маршрутизацию.

0 голосов
/ 07 марта 2011

Вы установили параметры маршрутизации в config / rout.rb?Проверьте, есть ли это в вашем файле rout.rb:

resources :people

Проверьте это руководство для получения дополнительной информации о том, как работают маршруты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...