Ecto ben https://github.com/elixir-lang/ecto/issues/389 okumaya ve ilgili konular ona bağlı olarak polimorfik ilişkiyi destekler niteliktedir.Polimorfik dernek Ecto ile nasıl çalışır?
ı Görev ve Olay modellerinde Yorum modeli ilişki gerek diyelim. özel kaynağıyla Ecto dernek benim anlayış doğru ise, o zaman dört masa ve üç model,
Tablolar
- görevleri
- olayları
- tasks_comments
- events_comments
model
- Görev
- Olay
- Yorum
Görev ve Olay modeli aşağıdaki gibi özel kaynağıyla Has_many derneği sahip olacaktır. Anlamadığım şey Şimdi
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
Comment modeli gibi görünmelidir nasıl?
Yorum model iki tabloyu nasıl işliyor? ve farklı modellere olan ilişkiyi nasıl ele alır?
Jose, cevap için teşekkürler. Cevaplarınızdan kaynaklanan çok sayıda soru var. Belki hepsi bu kadar önemsiz. 1. "Yorum modeli gerçekten herhangi bir tabloyu yok" => şema olmadan Comment modeli çalışır nasıl. 'Schema == table' okuyorum. Şema olmadan Yorum'u nasıl ve nasıl değiştirebilirim? 2. nasıl Ecto birlikte 'raylar yolu' çalışır? örnek kod var mı Bunun desteklediği kaynak kodu veya dokümanları okumayı göremiyorum. – shankardevy
1.Yorum modelinde bir tablo yoktur ancak ilişkilendirme yoluyla oluşturulduğunda bir tane vardır. 'Ve asla'% Comment {} ': Yani sır' assoc (yorum görevi) kullanmaktır. Bunları burada belgeledim: https://github.com/elixir-lang/ecto/commit/1d98ad795b8707ff8a9496657112603c14a64cc2 –
2. Raylar yolu Ecto derneklerinde çalışmaz çünkü veri tabanları referanslarını tutamayacağı için genellikle kötü bir uygulamadır. Sorgularınızı oluşturup uygun alanları elle ayarlamalısınız. –