Как отправить метод HTTP в помощнике по маршруту? - PullRequest
0 голосов
/ 22 января 2020

Как отправить метод HTTP в помощнике по маршруту? то есть я хотел бы вызвать ссылку ниже из действия контроллера:

<%= link_to 'Submit to Scheduling', orders_path(cart_id: @cart), method: :post, data: { confirm: "Are you sure?" }, class: "primary button btn" %> 

Я пытался orders_path(cart_id: @cart), но это не сработало.

Ни один не делает orders_path(cart_id: @cart, method: :post)

Как мне это сделать?

Редактировать 1

orders_path GET /orders(.:format)     orders#index
            POST    /orders(.:format) orders#create
new_order_path  GET /orders/new(.:format) orders#new
edit_order_path GET /orders/:id/edit(.:format) orders#edit
order_path  GET /orders/:id(.:format) orders#show
            PATCH   /orders/:id(.:format) orders#update
            PUT /orders/:id(.:format) orders#update
            DELETE  /orders/:id(.:format) orders#destroy

1 Ответ

0 голосов
/ 22 января 2020

К сожалению, вы не можете отправить метод post через метод redirect_to. Вы должны подумать об этом, используя метод get. Самый простой способ - создать еще одну страницу, где вы берете все свои параметры в Get, и эта страница может отправлять метод post с помощью form_url. Но все же я не буду рассматривать это, поскольку кажется, что проблема безопасности заключается в отправке параметров в get, а затем в метод post. Но все же это ваш звонок, поэтому следующий способ - это сделать, используя другую страницу. Еще один способ - добавить в репозиторий свой Gemfile

gem repost

Теперь используйте следующий метод для отправки перенаправления

redirect_post(orders_path(order_id: @order))

Он автоматически отправит запрос на публикацию, но помните, что вы должны Устраните проблему проверки токена и отключите ее в вашем контроллере с помощью следующей строки

skip_before_action :verify_authenticity_token

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

...