簡體   English   中英

獲取Rails ActiveRecord而不是多個查詢的對象數組

[英]Get rails ActiveRecord instead of Array of objects for multiple queries

我有一個表,用於存儲返回用戶列表的查詢。 然后,我有一個“香蕉”模型的方法“ get_public”,可以使用它們之間的邏輯與執行多個查詢。

所以,當我這樣做

Banana.find(x).get_public我收到了一個用戶數組(適用於該香蕉對象的用戶)。

get_public方法是這樣的:

def get_public
  pb = []
  banana_queries.each do |q|
    pb << User.find_by_sql(q.query)
  end
  pb.inject(:'&')
end

但是,如果我能獲得ActiveRecord :: Relation會很棒。 我想在以后做這樣的事情: Banana.find(x).get_public.where(...)方法可以修改get_public並實現它?

我不確定我是否正確地解決了這個問題,但是無論如何我都會盡力幫助。

如此處指定

  • 其中返回一個ActiveRecord :: Relation
  • find(及其相關的動態方法)返回單個模型對象

因此,我建議將您的查詢分為:“ joins”和“ where”字段。 您的新代碼應如下所示:

 pb << User.joins(q.query_joins).where(q.query_where)

在軌4中,不推薦使用find方法,因此建議使用where。

希望我不要錯過太多的重點了:-)

暫無
暫無

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

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