我有三个模型,每个都是这样连接的:Groups
有许多Students
,其中有许多Absences
。
Absences
有一个名为created_on
的字段。
我只有群组ID ,并希望获得今天缺席的所有学生。
我在Student
模型中创建了此方法:
# Inside student.rb
def self.absent_today_in_group (group)
#SQLITE
find(:all, :joins => :absences, :conditions => ["STRFTIME('%d', created_on) = ? AND STRFTIME('%m', created_on) = ?", Date.today.day, Date.today.month])
#POSTGRES
#find(:all, :joins => :absences, :conditions => ["EXTRACT(DAY FROM created_on) = ? AND EXTRACT(MONTH FROM created_on) = ?", Date.today.day, Date.today.month])
end
为什么该查询不会返回任何内容?那么我怎么能检查group_id?
答案 0 :(得分:3)
您使用的是哪种版本的导轨?您可以在rails 3中执行此操作:
def self.absent_today_in_group(group)
joins(:absences, :group).where(
'absences.created_on' => (Time.now.beginning_of_day..Time.now.end_of_day),
'groups.id' => group.id
)
end
这会找到今天因特定群体而缺席的所有用户。
答案 1 :(得分:0)
不应该是:在哪里,不是:条件?