Мне бы хотелось иметь возможность создавать заказы непосредственно со страницы показа объявлений, а не перенаправлять их на страницу новых заказов.
У меня есть листинг (метод showcontroller show), который можно приобрести, нажав кнопку, чтобы перейти на страницу заказов (метод orderscontroller create).
Каким образом я могу получить форму заказа непосредственно на странице показа объявлений?
Я пытался добавить форму, но я получаю сообщение об ошибке:
First argument in form cannot contain nil or be empty
<%= form_for([@listing, @order]) do |form| %>
Когда я беру метод создания Контроллера заказов и помещаю его в метод Показа Контроллера Листингов, я получаю эту ошибку:
Couldn't find Listing without an ID
Вот форма, которую я хочу найти на странице листинга:
<%= form_for([@listing, @order]) do |form| %>
....
Контроллер заказов создать:
@order = Order.new(order_params)
@listing = Listing.find(params[:listing_id])
@seller = @listing.user
@order.listing_id = @listing.id
@order.buyer_id = current_user.id
@order.seller_id = @seller.id
...
Маршруты:
resources :listings do
resources :orders
end
модель листинга:
has_many :orders
модель категории:
has_and_belongs_to_many :listings
Я попытался взять метод create orders и вставить его в метод листингов show с def create и без. Я помещаю "@listing = Listing.find (params [: перечисление_id])" перед методом create (при использовании "def create", и я все равно получаю ошибку, ей нужен идентификатор. Даже когда я получаю эту ошибку, в В нижней части веб-страницы запрос показывает, что ID листинга находится там.
Я пытался использовать скрытое поле в форме, но у меня не получилось.
Нужно ли что-то делать с контроллерами или есть способ как-то загрузить: перечисление_id в форму. Возможно, это что-то очень быстрое и простое для некоторых из вас, но почему оно не загружается на странице показа списков, а прекрасно загружается на странице создания заказов?