为什么这不会拒绝我的记录

>> a => [6, 8, 10, 12, 14] >> @project.posts(:all, :conditions => [ "id not in (?)", a ]) => [#<Post id: 6,........ 

为什么这不会过滤id为6的POst

我认为你需要使用@project.posts.find(:all, :conditions => .....) 。 只是关联本身的方法调用需要一个参数来指示是否重新加载关联。