我想要做的是创建适当的命名范围,以获取3天前创建的登录用户的所有报告
class User < ActiveRecord::Base
has_many :appraisals
end
class Appraisal < ActiveRecord::Base
belongs_to :user
has_one :report
scope :submitted, -> { joins(:report).where("reports.created_at >= ?", 3.days.ago) }
end
class Report < ActiveRecord::Base
belongs_to :appraisal
end
我尝试过不同的rails控制台语句,但也许我会采用错误的方式。
在rails控制台中,我尝试了各种各样的东西但是我一直收到这个错误
PG :: UndefinedTable:错误:缺少表“report”的FROM子句条目
使用
等语句user = User.find(2)
user.appraisals.submitted
有什么想法吗?
答案 0 :(得分:0)
在joins
中,你必须像这样指定关联名称:
scope :submitted, -> { joins(:report).where("appraisal_reports.created_at >= ?", 3.days.ago) }