【发布时间】:2016-11-21 18:18:11
【问题描述】:
我有一个表,其中包含与每个 school_user 关联的 school_user_id 和家庭作业的值,如下所示:
create_table "homework_students", force: :cascade do |t|
t.integer "school_user_id", limit: 4, null: false
t.integer "homework_id", limit: 4, null: false
t.datetime "completed_on"
t.datetime "created_at", null: false
t.datetime "updated_at",
每个 school_user 都与一个单独的作业相关联,而作业有许多 school_user。
我正在尝试在我的视图中打印连接到单个作业的 school_users 总数。
在我的控制器中:
@total = HomeworkStudent.where("SELECT homework_id FROM homework_students WHERE 'school_user_id = (?)'").sum(:school_user_id)
型号
homework
has_many :homework_students, :class_name => 'HomeworkStudent'
homework_students
belongs_to :homework, :class_name => 'Homework', :foreign_key => :homework_id
我认为这在我的语法中不正确 - 它一直打印 0。
有什么想法和更好的方法可以做到这一点吗?
编辑
知道了。
@total = HomeworkStudent.find_by_sql("SELECT homework_id FROM homework_students WHERE school_user_id GROUP BY homework_id").count
还是想知道有没有更好的办法。
【问题讨论】:
-
总和? .. 还是数数?
-
@DavidAldridge 嗨!对不起,算了。我改变了它,但仍然返回 0。我想我的语法中有一些东西回到前面......
标签: sql ruby-on-rails ruby-on-rails-4 sum