Форма не может перенаправить на редактирование пути

#ruby-on-rails #ruby

#ruby-on-rails #ruby

Вопрос:

У меня есть форма в файле редактирования в соответствующей папке просмотра. Я хочу направить эту форму на маршрут редактирования.

Вот моя форма,

 <%= form_with(model: @trade, local: true) do |form| %>
  
  <%= form.button "Accept", name: "button_action", value: "accept" %>
  <%= form.button "Deny", name: "button_action", value: "decline" %>

<% end %>
  

Мое действие редактирования в соответствующем контроллере,

   def edit
    @trade = Trade.find(params[:id])

    if params['button_action'] == 'accept'
      @trade.update(status: 1)
    else
      @trade.update(status: 2)
    end

    redirect_to root_path
  end
  

И мои маршруты,

                           book_trades GET    /book/:book_id/trades(.:format)                                                     trades#index
                                      POST   /book/:book_id/trades(.:format)                                                     trades#create
                       new_book_trade GET    /book/:book_id/trades/new(.:format)                                                 trades#new
                      edit_book_trade GET    /book/:book_id/trades/:id/edit(.:format)                                            trades#edit
                           book_trade GET    /book/:book_id/trades/:id(.:format)                                                 trades#show
                                      PATCH  /book/:book_id/trades/:id(.:format)                                                 trades#update
                                      PUT    /book/:book_id/trades/:id(.:format)                                                 trades#update
                                      DELETE /book/:book_id/trades/:id(.:format)                                                 trades#destroy
  

Но я не мог направить и не получить ошибку соответствия маршрута. Я новичок в ruby и программировании, какой смысл мне не хватает?

Заранее спасибо.

Ответ №1:

Метод редактирования предназначен для рендеринга формы. Действие формы отправит запрос PUT методу update.

Вам нужно сохранить перемещение логики в edit методе в update метод