我有一個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