2013-12-12 3 views
1

У меня есть следующие в моем routes.rb файле:Rails - Нет маршрут не соответствует POST

post 'report/mnps/generate' => 'report#mnps_generate', as: 'report_mnps_generate'

Тогда в моей reports/mnps.html.erb зрения у меня есть это:

<%= button_to report_mnps_generate_path %>

Однако, эта кнопка перенаправляет метод post на . Почему эта кнопка перенаправляется туда вместо report/mnps/generate?

EDIT

rake routes возвращается:

  Prefix Verb URI Pattern        Controller#Action 
       root GET/          home#index 
     report_index GET /report(.:format)      report#index 
     report_mnps GET /report/mnps(.:format)     report#mnps 
report_mnps_generate POST /report/mnps/generate(.:format)   report#mnps_generate 
+0

Должно ли действие контроллера быть 'report # mnps_generate', то есть' reports' вместо 'report', в определении маршрута? – vee

+0

Можете ли вы опубликовать вывод «рейковых маршрутов»? – kddeisz

+0

Готово. Я знаю, что могу определить метод post для отчета/mnps, который бы работал, я просто не могу понять, почему он перенаправляет туда вместо report/mnps/generate. – Luigi

ответ

1

Определение button_to гласит, что первым параметром является имя, которое обычно используется в качестве метки. Смотрите здесь:

http://apidock.com/rails/ActionView/Helpers/UrlHelper/button_to

Чтобы получить ссылку на эту страницу, вам нужно написать на кнопку, как этот

button_to('Clickme!', report_mnps_generate_path) 

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

+0

Ах, имеет смысл. Благодарю. – Luigi

Смежные вопросы