#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
метод