是给定集合中的对象吗?

时间:2010-02-18 19:15:33

标签: ruby-on-rails ruby

假设我有一个博客应用程序。每篇文章都有评论。

所以,我在“Post.comments”中收集了一些评论

假设我有一个名为“this_comment”的对象

Ruby中是否有一个神奇的关键字或构造,我可以在'Post.comments'中测试“是'this_comment'吗?

换句话说,我想知道“this_comment”是否是“Post.comments”集合的成员。我可以做一个'找到'并得到我的答案,但看起来像Ruby可以通过一个很酷的关键字,如“if this_comment.in(Post.comments)”

轻松实现

我想如果没有,我可以为“评论”(或“is_in”方法编写我自己的“in”方法,因为我认为'in'是一个保留关键字)。

谢谢!

2 个答案:

答案 0 :(得分:6)

你可以做一个数组

[:a, :b, :c].include?(:a)

但是,如果你正在处理模型,ActiveRecord会做一些很酷的事情来保持你的查询清晰。假设评论是命名范围或某种关联,您可以这样做:

Post.comments.exists?(this_comment.id)

命名范围和关联几乎可以包含所有调用它的Activerecord类方法

答案 1 :(得分:1)

您是如何定义“发布”和“评论”之间的关系的?发表has_many评论?

如果有,请尝试.exists?()

相关问题