[英]Rails Custom SQL Query not working with find_by_sql
我的Rails應用程序中有三個Tables用戶,user_groups和user_groups_users。 現在,我編寫了一個SQL查詢
SELECT user_group_id FROM user_groups_users GROUP BY user_group_id HAVING SUM(CASE WHEN user_id IN (1,4) THEN 1 ELSE 0 END) = COUNT(*)
提取那些user_group_id,該用戶名恰好具有輸入提供的user_id。 在這種情況下,將提供1,4作為紅寶石陣列[1,4]。
現在,我想為我的Rails應用程序編寫此SQL查詢。 但是當我在rails中使用find_by_sql
語句執行此查詢時,它返回的是正確的編號。 特定user_id所屬的user_group的數量,但結果不顯示user_group_id。
=> [#<UserGroup >, #<UserGroup >, #<UserGroup >, #<UserGroup >, #<UserGroup >, #<UserGroup >]
所以我怎么能從中提取User_group_id。
但是,當我通過直接連接到數據庫來執行查詢時。 我得到了預期的結果
sql = "SELECT user_group_id FROM user_groups_users WHERE user_id IN (1,2) GROUP BY user_group_id HAVING Count(DISTINCT user_id) = 2;"
records_array = ActiveRecord::Base.connection.execute(sql)
但是,這里的問題是,我將如何使用字符串替換技術來使用給定的user_ids作為輸入。
您正在獲取對象的數組,因此需要迭代遍歷該對象
user_groups_users = [#<UserGroup >, #<UserGroup >, #<UserGroup >, #<UserGroup >, #<UserGroup >, #<UserGroup >]
user_groups_users.map do |user_groups_user|
puts user_groups_user.user_group_id
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.