gpt4 book ai didi

sql - find_by_sql呈现数组

转载 作者:行者123 更新时间:2023-12-05 00:26:04 26 4
gpt4 key购买 nike

我在这里遇到了一些问题,我无法发出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!

我不知道从哪里找到答案,如果您能帮助我,我将不胜感激。
谢谢

最佳答案

只有使用find_by_sql调用YourModel.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吗?

关于sql - find_by_sql呈现数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11115785/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com