2015-10-23 18 views
5

Rails Denetleyicisinde, yalnızca current_user öğesine ait yayınları almak için kodun sıklığını görürsünüz;Ekto ilişkilendirme sorgusu tabanlı

class PostsController < APIController 
    def show 
    current_user.posts.find(params[:id]) 
    end 
end 

Bunu Ecto ile ifade etmenin en iyi yolu nedir?

cevap

6

Repo işlevleri ile birlikte Ecto.Model.assoc/2 kullanabilirsiniz.

örn:

assoc(current_user, :posts) |> Repo.all() 

Ayrıca sorguları oluşturmak için kullanabilir:

assoc(current_user, :posts) |> Repo.get(id) 

Bir kullanıcı için tüm mesajları almak için:

tek bir öğe almak için