Rails存在多对多关系,存在?询问

时间:2012-03-07 23:05:12

标签: ruby-on-rails ruby activerecord

我在文件夹和文档表之间有一对多的关系。我想查看文件夹是否包含以下文档:

q = Doc.new(blabla)

folder.docs.inludes?(q)

2 个答案:

答案 0 :(得分:1)

我想你应该试试

folder.docs.exists?(Q)

答案 1 :(得分:0)

如果您正在创建这样的新Doc,无论Doc的内容如何,​​它都将永远不会与数据库中的任何其他Doc相同(只要包括?),因为Doc将具有不同的ID / object instance hashes。

如果您希望能够比较基于内容的Doc而不是实际记录(由id引用),那么您可以使用eql吗? (==) - 见这里:http://ruby-doc.org/core-1.9.3/Object.html#method-i-eql-3F。我不建议这样做。

我会在理想情况下重新考虑你的解决方案。您要检查什么,以查看文件夹是否包含特定名称的文档?

folder.docs.find_by_name('blabla')

如果你得到一个非零的结果,你在文件夹中有一个名为'blabla'的文档,如果它没有你没有。