ids内の投稿を検索するには?EctoでWHERE IN配列節を作成するには?
これが動作しない:Railsの中
posts = Post |> where(id: [1, 2]) |> Repo.all
例:
Post.where({ id: [1, 2]})
# SELECT * FROM posts WHERE id IN (1, 2)
ids内の投稿を検索するには?EctoでWHERE IN配列節を作成するには?
これが動作しない:Railsの中
posts = Post |> where(id: [1, 2]) |> Repo.all
例:
Post.where({ id: [1, 2]})
# SELECT * FROM posts WHERE id IN (1, 2)
を以下に動作するはずです:
posts = Post |> where([p], p.id in [1, 2]) |> Repo.all
を受け入れ答えは私にundefined function p/0
を与えるので、私が来ましたこれまで:
from(p in Post, where: p.id in [1, 2]) |> Repo.all
「キーワード」と「表現」の両方のパターンが必要でしたが、リストから値を補間する場合は、変数の前に^
演算子が必要です。また、これらのどちらかを試す前に、マクロが入っているモジュール(マクロはコンパイルの必要性があるため特別なもの)をインポートする必要があります。これは、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)
戻り '未定義の関数p/0 'denis.peplin @ –
、あなたは'輸入Ecto.Query'する必要があります。 ( 'Repo.app'を行うために' alias MyApp.Repo'を実行することを忘れないでください。 – dcarneiro