[英]Rails - how to convert output of find_by_sql (array) to an ActiveRecord relation?
[英]find_by_sql renders an array
我在這里遇到了一些問題,我無法使我的find_by_sql請求呈現ActiveRecord關系。 實際上,我需要一個activerecord關系來提出新的請求:
@searches = @searches.find_by_sql('SELECT *, COUNT( follower_id ) FROM follows GROUP BY followable_id LIMIT 0 , 3') if params[:only_famous_projects]
@project_pages = @project_pages.where(:project_id => @searches.pluck(:'followable.id')) if params[:only_famous_projects]
沒有activerecord關系我不能使用“pluck”。 因此,我認為我必須將我的sql請求轉換為Activerecord請求。 但是,只要我在ActiveRecord上使用“count”,我就會遇到一個很大的問題:我最終沒有ActiveRecord關系,而是一個FixNum!
我不知道在哪里找到答案,如果你能幫助我,我將非常感激。 謝謝
只有在使用YourModel.find_by_sql
調用它時, find_by_sql
才會返回ActiveRecord對象。
為什么不使用ActiveRecord查詢接口。 它在計算方面做得很好。
更新
@searches = @searches.group(:followable_id).limit(3).offset(0).count(:follower_id) if params[:only_famous_projects]
請注意,它將為您提供包含每個followable_id
的計數的哈希。
是不是LIMIT 0, 3
相當於LIMIT 3
?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.