एक्टो पॉलीमोर्फिक एसोसिएशन का समर्थन करता प्रतीत होता है क्योंकि मैंने https://github.com/elixir-lang/ecto/issues/389 और इससे जुड़े इसके संबंधित मुद्दों को पढ़ा है।पॉलिमॉर्फिक एसोसिएशन एक्टो के साथ कैसे काम करता है?
मान लें कि मुझे कार्य और ईवेंट मॉडल पर एक टिप्पणी मॉडल एसोसिएशन की आवश्यकता है। यदि कस्टम स्रोत के साथ Ecto संघ की मेरी समझ सही है, तो हम चार टेबल और तीन मॉडल,
टेबल्स
- कार्यों
- घटनाओं
- tasks_comments
- events_comments
मॉडल
- टास्क
- घटना
- टिप्पणी
टास्क और घटना मॉडल के रूप में नीचे दिए गए कस्टम स्रोत के साथ has_many संघ होगा।
defmodule ExampleApp.Task do
use ExampleApp.Web, :model
schema "tasks" do
field :title, :string
field :body, :string
has_many :comments, {"tasks_comments", Comment}
timestamps
end
end
defmodule ExampleApp.Event do
use ExampleApp.Web, :model
schema "events" do
field :title, :string
field :body, :string
has_many :comments, {"events_comments", Comment}
timestamps
end
end
अब मैं क्या समझ में नहीं आता टिप्पणी मॉडल की तरह दिखना चाहिए कैसे है?
टिप्पणी मॉडल दो तालिका कैसे संभालता है? और यह अलग-अलग मॉडलों के अनुरूप है?
जोस, उत्तर देने के लिए धन्यवाद। आपके उत्तरों से उत्पन्न होने वाले कई प्रश्न हैं। शायद यह सब तुच्छ है। 1. "टिप्पणी मॉडल में वास्तव में कोई तालिका नहीं है" => टिप्पणी मॉडल स्कीमा के बिना कैसे काम करता है। मैं 'schema == टेबल' पढ़ रहा हूँ। स्कीमा के बिना मैं टिप्पणी कैसे सत्यापित कर सकता हूं, और इस प्रकार बिना किसी बदलाव के? 2. इको एसोसिएशन में 'रेल मार्ग' कैसे काम करता है? क्या कोई उदाहरण कोड है? मुझे स्रोत कोड या दस्तावेज़ पढ़ने को नहीं लगता है जो यह समर्थित है। – shankardevy
1।टिप्पणी मॉडल में एक टेबल नहीं है लेकिन एसोसिएशन के माध्यम से बनाया गया है। तो रहस्य 'assoc (कार्य, टिप्पणियां)' और कभी '% टिप्पणी {}' का उपयोग करना है। मैंने यहां उन लोगों को दस्तावेज किया है: https://github.com/elixir-lang/ecto/commit/1d98ad795b8707ff8a9496657112603c14a64cc2 –
2. रेल मार्ग Ecto संघों में काम नहीं करता है क्योंकि यह आमतौर पर खराब अभ्यास है क्योंकि डेटाबेस इसके संदर्भ नहीं रख सकता है। आपको अपने प्रश्नों को बनाना होगा और उचित फ़ील्ड हाथ से रखना होगा। –