polymorphic
모델 Document
과 문서가 연결된 여러 모델이 있습니다. 그 중의 하나는 CustomerPlan
모델 has_many documents, as: :linkable
입니다. 이것은 잘 작동합니다.다형성 모델 및 has_many부터
또한 Company
모델은 has_many :customer_plans
입니다. 따라서 회사의 사례에는 많은 문서가 있어야합니다. Company
모델과 Document
모델간에 has_many 관계를 올바르게 설정하려면 어떻게해야합니까?
현재 :
스키마 :
create_table "documents", force: :cascade do |t|
t.json "links"
t.integer "linkable_id"
t.string "linkable_type"
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "documents", ["linkable_type", "linkable_id"], name: "index_documents_on_linkable_type_and_linkable_id", using: :btree
모델 : 귀하의 질문에 대한 이해에 따르면
class Document < ActiveRecord::Base
belongs_to :linkable, polymorphic: true
belongs_to :user
belongs_to :company
mount_uploaders :links, DocUploader
end
class CustomerPlan < ActiveRecord::Base
belongs_to :company
has_many :documents, as: :linkable
accepts_nested_attributes_for :documents
end
class Company < ActiveRecord::Base
has_many :customer_plans
has_many :documents
end
회사는 다른 모델 (따라서 다형성)을 통해 문서를 가질 수도 있습니다. 각 문서마다 has_many 연관을 별도로 지정해야합니까? – Matthias