假设我有一个博客应用程序。每篇文章都有评论。
所以,我在“Post.comments”中收集了一些评论
假设我有一个名为“this_comment”的对象
Ruby中是否有一个神奇的关键字或构造,我可以在'Post.comments'中测试“是'this_comment'吗?
换句话说,我想知道“this_comment”是否是“Post.comments”集合的成员。我可以做一个'找到'并得到我的答案,但看起来像Ruby可以通过一个很酷的关键字,如“if this_comment.in(Post.comments)”
轻松实现我想如果没有,我可以为“评论”(或“is_in”方法编写我自己的“in”方法,因为我认为'in'是一个保留关键字)。
谢谢!
答案 0 :(得分:6)
你可以做一个数组
[:a, :b, :c].include?(:a)
但是,如果你正在处理模型,ActiveRecord会做一些很酷的事情来保持你的查询清晰。假设评论是命名范围或某种关联,您可以这样做:
Post.comments.exists?(this_comment.id)
命名范围和关联几乎可以包含所有调用它的Activerecord类方法
答案 1 :(得分:1)
您是如何定义“发布”和“评论”之间的关系的?发表has_many评论?
如果有,请尝试.exists?()
。