2010-05-30 75 views
0

我有两个模型,Worker和Project,它们通过关联与has_many关联。通过关联使用has_many查找记录

我设法找到所有这些都通过写下面的代码与特定的工人项目:

worker=Worker.find_by_id("some_id") 
worker.projects 

,但我想,我得到是唯一的活动项目(项目模型我的项目有一个状态字段)

我试图做类似

worker.projects(:status_id=>'active') 

但它并没有为我工作。

有人可以告诉我我该怎么做?

+0

@piemesons:我可以想象,这个特殊的语法点将很难只是在必要时在文档中查找。只有这种关系利用了鸭子打字这一事实才加重了困难,使得##all'方法的存在几乎令人惊讶。 – Matchu 2010-05-30 14:31:44

回答

1

尝试:

worker.projects.all(:conditions => {:status_id => 'active'}) 
1
worker.projects.all(:conditions => {:status_id => 'active'}) 

会工作。 (回答编辑后的评论)

+1

虽然他们确实表现不同。 '#find'在失败时会抛出异常,而'#find_by_id'在失败时返回nil。 – Matchu 2010-05-30 14:30:35

+0

哦,非常感谢Matchu ..编辑我的答案... – 2010-05-30 14:31:49

相关问题