Rails 4:加入 has_many 关系

Posted

技术标签:

【中文标题】Rails 4:加入 has_many 关系【英文标题】:Rails 4: Joins with has_many relationship 【发布时间】:2016-12-08 17:44:42 【问题描述】:

我有 2 个模型,weekly_reportconsult_stat,它们的组织方式如下:

class ConsultStat < ActiveRecord::Base
    belongs_to :weekly_report
end

class WeeklyReport < ActiveRecord::Base
    has_many :consult_stats
end

consult_stats 表上的一个属性是:consults,我想检索给定每周报告集的咨询总数

如果我要处理 1 个每周报告,我可以这样做

WeeklyReport.find(x).consult_stats.sum(:consults)

但是,当我尝试选择一组每周报告时:

WeeklyReport.where("start_date > ?", "2016-11-01")

并使用joins 检索他们的consult_stats 的咨询总和我一直收到错误。

【问题讨论】:

错误是什么?可能是您的日期没有格式化? 【参考方案1】:

那就是this post我意识到了

weekly_report 在joins(:weekly_report) 中是单数,因为它是belongs_to 关系 weekly_reports 在 where 中是复数,因为它是表名

提出我的问题:

ConsultStat.joins(:weekly_report).where("weekly_reports.start_date > ?", "2016-11-01")

【讨论】:

以上是关于Rails 4:加入 has_many 关系的主要内容,如果未能解决你的问题,请参考以下文章

Rails 4找不到关联has_many,通过:关系错误

Rails 4找不到关联has_many,通过:关系错误

Rails 4中has_many中的静态范围

如何将参数传递给 Rails 4 中的 has_many 关联范围?

Rails RSpec 测试 has_many :through 关系

何时在 Rails 中使用“has_many :through”关系?