合并AR查询的问题

时间:2012-03-24 16:19:06

标签: ruby-on-rails ruby-on-rails-3 activerecord

我一直在尝试各种不同的方式来结合查询,但我根本没有运气。它要么返回一个,要么根据我先放的查询。我希望它能够获取for_group_with_account的所有条目以及for_task_with_account的所有条目并创建一个列表。这不是我想要的条件,而是每个条件的结果相结合。希望这是有道理的。

以下是我的门票模型中的范围:

  scope :for_group_with_account, lambda { |account| joins(:group => :accounts).where("accounts.id = ?", account.id) }
  scope :for_task_with_account, lambda { |account| joins(:tasks => :account).where("accounts.id = ?", account.id) }
  scope :for_account, lambda { |account| for_task_with_account(account).merge(for_group_with_account(account)) }

对于我结合范围的最后一个范围,我也尝试过:

  scope :for_account, lambda { |account| for_task_with_account(account) + for_group_with_account(account) }
  scope :for_account, lambda { |account| for_task_with_account(account) & for_group_with_account(account) }
  scope :for_account, lambda { |account| for_task_with_account(account) && for_group_with_account(account) }

仍然没有一个实际上采用这两个列表并将它们组合在一起。非常非常令人沮丧。有什么我做错了吗?

感谢。

1 个答案:

答案 0 :(得分:0)

scope :for_account, lambda { |account| for_task_with_account(account).for_group_with_account(account) }