【问题标题】:Ruby On Rails : Empty array but data in SQLRuby On Rails:空数组但 SQL 中的数据
【发布时间】:2014-04-24 13:58:00
【问题描述】:

我的代码中有这个模型:

car.rbmodel.rbbrand.rb

car belongs_to model
model belongs_to brand

我提出这个要求:

select('brands.label, brands.id, count(ads.model_id) AS nbr_car').order('nbr_car DESC').joins(:model).joins('INNER JOIN brands AS brands ON brands.id = models.brand_id').group('brands.id').published.map{|c| [c.label, c.id]}

这会导致以下 SQL:

SELECT brands.label, brands.id, count(ads.model_id) AS nbr_car 
FROM `ads` 
INNER JOIN `models` ON `models`.`id` = `ads`.`model_id` 
INNER JOIN brands AS brands ON brands.id = models.brand_id 
WHERE `ads`.`type` IN ('Car') 
GROUP BY brands.id 
ORDER BY nbr_car DESC

在 Rails 中,我得到的是空数组,但从 SQL 中我得到了结果!

怎么了?

【问题讨论】:

  • 你确定你在同一个数据库上运行它们吗?

标签: sql ruby-on-rails ruby ruby-on-rails-3


【解决方案1】:

我认为罪魁祸首可能是 published 这里,我在你的 SQL 查询中找不到任何对应物。尝试打印以下查询的结果:

select('brands.label, brands.id, count(ads.model_id) AS nbr_car').
order('nbr_car DESC').joins(:model).joins('INNER JOIN brands AS brands ON brands.id = models.brand_id').
group('brands.id')

【讨论】:

    猜你喜欢
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 2015-05-05
    • 1970-01-01
    • 1970-01-01
    • 2012-09-21
    • 1970-01-01
    • 2022-11-16
    相关资源
    最近更新 更多