2016-04-23 20 views

cevap

32

aşağıdaki çalışması gerekir: Rails

posts = Post |> where(id: [1, 2]) |> Repo.all 

Örnek:

Bu

çalışmıyor

posts = Post |> where([p], p.id in [1, 2]) |> Repo.all 
+1

İade 'tanımlanmamış işlev p denis.peplin @/0' –

+1

yapmanız' ithalat Ecto.Query' var. (Repo.app'ı yapmak için Algo benim aliap.Repo'yu unutma) – dcarneiro

17

Kabul Cevap bana undefined function p/0 verir, bu yüzden geldi Buna:

from(p in Post, where: p.id in [1, 2]) |> Repo.all 
4

Diğer posterler hem "anahtar kelimeler" hem de "ifadeler" kalıplarını gerekli kıldı, ancak yorum yapmak istedim ve değerleri listeden enterpolasyon yaparsanız değişkenden önce ^ operatörüne ihtiyacınız olduğunu belirtmek istedim. Bunlardan birini denemeden önce makroları içeren modülü (makroların farklı derleme ihtiyaçları olduğu için özel) almanız da gerekir. Bu tüm 2.1.1, btw ile. Yani:

import Ecto.Query 
... 

id_list = [1,2,4,5,6] 


# "expressions" 

Post 
|> where([p], p.id in ^id_list) 


# "keywords" 

from(p in Post, where: p.id in ^id_list) 
İlgili konular