2016-04-23 8 views

答えて

32

を以下に動作するはずです:

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

戻り '未定義の関数p/0 'denis.peplin @ –

+1

、あなたは'輸入Ecto.Query'する必要があります。 ( 'Repo.app'を行うために' alias MyApp.Repo'を実行することを忘れないでください。 – dcarneiro

17

を受け入れ答えは私にundefined function p/0を与えるので、私が来ましたこれまで:

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

「キーワード」と「表現」の両方のパターンが必要でしたが、リストから値を補間する場合は、変数の前に^演算子が必要です。また、これらのどちらかを試す前に、マクロが入っているモジュール(マクロはコンパイルの必要性があるため特別なもの)をインポートする必要があります。これは、2.1.4、btwである。だから、:

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)