Я пытаюсь сделать базовую страницу оформления заказа, и вот что у меня есть:
Оформление заказа осуществляется из transactions#new
, а форма построена из нового Transaction
объекта. Transaction
имеет несколько вложенных моделей под ним:
class Transaction < ActiveRecord::Base
# ...
accepts_nested_attributes_for :user, :shipping_address, :products
# ...
end
User
, Product
и Location
(адрес доставки) могут сохраняться при переходе на страницу оформления заказа в зависимости от потока пользователей. Product
всегда сохраняется по прибытии на страницу оформления заказа.
Эта настройка работает для меня до сих пор, за исключением случаев сбоя. Я пытался заново создать новую запись Transaction
(с ранее введенной в пользовательской информации) для отображения соответствующих сообщений об ошибках, и я пытался сделать это в моем контроллере:
class TransactionsController < ApplicationController
def new
@transaction = Transaction.new
end
def create
@transaction = Transaction.new params[:transaction]
# ...
end
end
Но я получаю эту ошибку:
ActiveRecord :: RecordNotFound в TransactionsController # create
Не удалось найти продукт с идентификатором = 1 для транзакции с идентификатором =
Параметры запроса
{"utf8" => "✓", "authenticity_token" => "blahblahblah",
"Сделки" => { "products_attributes" => { "0" => { "ID" => "1",
"Количество" => "1"}}}}
Кто-нибудь знает, что с этим? Дайте мне знать, если вам нужна дополнительная информация о моей настройке здесь ... попытался свести эту проблему к самым необходимым ...
class Transaction < ActiveRecord::Base
has_many :product_transactions
has_many :products, :through => :product_transactions
end
и
class Product < ActiveRecord::Base
has_many :product_transactions
has_many :transactions, :through => :product_transactions
end
и
class ProductTransaction < ActiveRecord::Base
belongs_to :transaction
belongs_to :product
end