ActiveRecord链接在哪里或关系

时间:2013-05-05 18:24:58

标签: ruby-on-rails activerecord rails-activerecord active-record-query

我在我的模型中链接多个位置,它看起来像那样 - user.watched_posts.commented_posts

其中watched_posts和commented_posts只是User模型中调用where的方法。 目前SQL的结果有条件之间的AND关系,
SELECT * FROM users WHERE (--watched_posts-) AND (--commented_posts--)

我如何链接方法但得到和OR关系?
SELECT * FROM users WHERE (--watched_posts-) OR(--commented_posts--)

我不想创建像'watched_or_commented_posts'这样的方法,因为它会很奇怪...... 我还有许多其他方法会被链接,我需要一个OR关系。

我们将不胜感激, Yosy。

1 个答案:

答案 0 :(得分:1)

ActiveRecord接口不提供or的包装器。它由Arel提供,这是ActiveRecord使用的。您可以使用arel_table类方法访问模型的arel表。

看一下Arel github的OR部分:

https://github.com/rails/arel