Я пытаюсь добавить функциональность приложения в магазин Spree. Например. a product
имеет много прилагаемых documents
: брошюры, руководства по эксплуатации и т. д. Я не могу заставить отношения между документами и продуктами работать.Spree Relation Issue
Я могу использовать драгоценный камень Paperclip для функциональности вложения, поскольку Spree уже использует его для изображений.
У меня есть "документ" модель: models/spree/document.rb
:
class Spree::Document < ActiveRecord::Base
belongs_to :products, class_name: "Spree::Product"
has_attached_file :pdf
end
Тогда я пытаюсь связать модель документа к Spree::Product
модели в models/spree/product_decorator.rb
:
Spree::Product.class_eval do
has_many :documents, dependent: :destroy
end
Затем я добавляю миграции:
class CreateDocuments < ActiveRecord::Migration
def change
create_table :spree_documents do |t|
t.timestamps
end
end
end
class AddPdfToDocuments < ActiveRecord::Migration
def self.up
add_attachment :spree_documents, :pdf
end
def self.down
remove_attachment :spree_documents, :pdf
end
end
Теперь я иду в рельсы con Единственный, чтобы увидеть, если он работал:
#=> prod = Spree::Product.first
#=> prod.document
#=> PG::UndefinedColumn: ERROR: column spree_documents.product_id does not exist
#=> LINE 1: ..."spree_documents".* FROM "spree_documents" WHERE "spree_doc...
^
#=> : SELECT "spree_documents".* FROM "spree_documents" WHERE "spree_documents"."product_id" = $1
Похоже, я не определение взаимосвязи между документами и продуктами правильно, но я не уверен, что проблема есть.