2015-12-09 9 views
13

मेरे पास एक पोस्ट और टिप्पणी मॉडल है। एक पोस्ट में कई टिप्पणियां हैं और एक टिप्पणी एक पोस्ट से संबंधित है।Elixir में Ecto के साथ "belong_to" एसोसिएशन कैसे प्राप्त करें?

एक व्यक्तिगत टिप्पणी दिखाते समय, मैं उस पोस्ट को कैसे एक्सेस कर सकता हूं जो यह संबंधित है?

अर्थात रूबी ऑन रेल्स में तुम कर सकते हो:

@comment = Comment.find(params[:id]) 
@post = @comment.post 

मैं इस फीनिक्स अमृत ढांचे का उपयोग कर प्राप्त कर सकते थे? मेरा मानना ​​है कि मेरे पास मेरे मॉडल एसोसिएशन ठीक से स्थापित हैं लेकिन मैं इस प्रश्न को वास्तव में दृश्य या नियंत्रक में कैसे प्राप्त कर सकता हूं इस पर उलझन में हूं।

उत्तर

20

यदि आप Ecto.Schema दस्तावेज़ पढ़ते हैं तो आप देखेंगे कि belongs_to/3 एसोसिएशन कैसे बनाएं।

defmodule MyApp.Comment do 
    use MyApp.Model 

    schema "comments" do 
    belongs_to :post, MyApp.Post 
    end 
end 
संघ के साथ

की स्थापना आप Repo.preload/2 उपयोग कर सकते हैं एसोसिएशन लाने के लिए।

Repo.preload(comment, :post).post 

तुम भी एक प्रश्न में से लोड कर सकता है अगर आप Ecto.Query.preload/3

+0

अद्भुत के साथ संसाधन नहीं दिलवाया है, तो आप बहुत बहुत धन्यवाद। –

संबंधित मुद्दे