2012-01-24 67 views
4

我有两个模型ProjectUrlList。一个项目:has_many url_list和一个url_list :belongs_to项目。ActiveRecord查询

现在我有一个项目ID为all_projects = [1,2,5,8,16]的数组。我想从url_list中检索所有记录,其中project_id是来自all_projects数组的其中之一。我如何为它编写代码?

回答

8

你可以传递一个数组作为值的属性where方法:

all_projects = [1, 2, 5, 8, 16] 
url_lists = UrlList.where(:project_id => all_projects) 

它会生成SQL查询这样的:

SELECT `url_lists`.* FROM `url_lists` WHERE `project_id`.`user_id` IN (1, 2, 5, 8, 16) 
+0

也许'S/ULR/URL /'? – Frost

+0

感谢,虽然'ulr'没有破坏任何东西=) –

+0

我知道它没有破坏任何东西,但我仍然认为它是一个错字,因为我猜大多数人会希望变量名至少应该拼写正确;) – Frost