0
我有一個顯式join_schema關聯,它在兩端都引用相同的模型(類似於傳統追隨者(是用戶)< - > Followee(是一個用戶)事情)。Ecto:在many_to_many查詢中包含連接模式字段
要堅持這個例子,如果我查詢用戶的追隨者,我想包括跟隨用戶的時間。這些數據顯然位於連接模式上(我們稱之爲Subscription)。
如果將只是想跟隨我會做這樣的:
followers = User
|> Repo.get!(user_id)
|> assoc(:followers)
|> Repo.all()
要有這方面的工作,我會在用戶定義的:
many_to_many(
:followers,
MyApp.User,
join_through: MyApp.Subscription,
join_keys: [followee_id: :id, follower_id: :id]
)
所以我們可以說是有created_at
字段上的Subscription
模型。我將如何查詢以獲得它?
嗯,我已經這樣做了,但認爲這將有可能獲得一個列表 - 在這種情況下 - 追隨者。我想這樣,因爲訂閱列表打破了Phoenix的'render_many'。 無論如何,我再次嘗試了一次,發現它從模式名稱中推斷了鍵,這顯然不匹配,因爲它是「FollowerView」。但是有一種方法可以明確定義它。 所以問題解決了,thx! :) – fahrradflucht