Ситуация:
При создании метода ordercontroller в таблицу заказов создается заказ.
Затем видео загружается с помощью метода создания videoordercontroller в связанную таблицу видео-заказа.с order_id.
У меня есть это на странице показа заказов, чтобы загрузить видео в заказ:
<%= form_for([@order, @video_order]) do |form| %>
<%= form.file_field :video %>
<%= form.submit "Upload", class: "btn btn-success" %>
Эта форма технически исчезает после отправки, но я тестирую обновление видео, потому что ятакже хочу дать возможность обновить видео в случае загрузки неправильного видео.
Я пытался:
<%= form_for([@order, @video_order], :url => edit_order_video_order_path(@order.id, @video_order), remote: true ) do |form| %>
<%= form.file_field :video %>
<%= form.submit "Upload", class: "btn btn-success" %>
Но это дает мне
"(No route matches [POST] "/orders/150/video_orders/150/edit")"
Что, конечно, это не сработает, но я также не могу понять, как разрешить обновлять видеостолы order_id с той же страницы URL.Я не хочу отправлять пользователя на новую страницу для удобства.
Итак, в принципе, как я могу разрешить обновление видео заказов в таблице видео?
Вот модели: модель video_order
belongs_to :order
validates :order_id, uniqueness: true
модель заказа Order
has_one :video_order
Модель video_order имеет только order_id и video.модель заказа не имеет столбца video_id.
Кроме того, если вы видите, что какие-либо ассоциации ошибочны или есть более эффективные способы, сообщите мне об этом.
Рейк:
edit_order_video_order GET /orders/:order_id/video_orders/:id/edit(.:format) video_orders#edit
PATCH /orders/:order_id/video_orders/:id(.:format) video_orders#update
PUT /orders/:order_id/video_orders/:id(.:format) video_orders#update
Это происходит на странице показа заказа
У меня есть этот метод в контроллере заказа:
def show
@user = current_user
@video_order = VideoOrder.new
end
Здесь происходит загрузка видео.я также хочу разрешить обновление из него с отдельной формой