2016-04-23 7 views

उत्तर

32

निम्नलिखित काम करना चाहिए:

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

रिटर्न 'अपरिभाषित समारोह पी/0' –

+1

@ denis.peplin, आप के लिए' आयात Ecto.Query' है। ('Repo.app' करने के लिए algo' 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, बीटीडब्ल्यू के साथ है। तो:

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) 
संबंधित मुद्दे