簡體   English   中英

將兩個活動記錄關系合並為活動記錄關系

[英]Combine two active record relation as active record relation

我有兩套活動記錄

users_by_type = User.where(type: 'customer')

此類是:users_by_type.class =>活動記錄關系

users_by_tag = User.tagged_with('admin')

此類是:users_by_tag => ActiveRecord關系

當我像這樣組合兩個集合時:

users = users_by_type + users_by_tag
or
users = users_by_type.merge(users_by_tag)

它給結果為數組,但我希望它為活動記錄關系。

用戶類別是:數組

因為在數組中,我無法使用where子句和group子句。

如何合並兩個集合,以便可以使用where和group子句?

您需要的是用於活動記錄的#OR方法,不幸的是尚未實現,但是它已經在github中合並,並將與rails 5一起發布。

這是拉取請求dhh關於何時發布的評論

同時,您也可以選擇使用Arel,就像這里提到的一樣

或者,有一種愚蠢的壞方法,即同時獲取兩個查詢的ID,然后使用這些ID創建第三個查詢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM