class Course

Schema Information

Table name: courses

id               :integer          not null, primary key
subject_id         :integer
name             :string(255)
number           :string(255)
description      :text
created_at       :datetime
updated_at       :datetime
university_id       :integer
mini_description :string(255)

Public Class Methods

not_joined_by_student(student, query) click to toggle source

Returns query condition for students who had not joined the courses.

# File app/models/course.rb, line 63
def self.not_joined_by_student(student, query)
  where("
    name like ?
    AND id NOT IN (
      SELECT course_id
      FROM courses_students
      WHERE student_id = ?
    )
  ", "%#{query}%", student.id)
end
paginate(options = {}) click to toggle source

Sets pagination per page.

# File app/models/course.rb, line 58
def self.paginate(options = {})
  page(options[:page]).per(options[:per_page])
end

Public Instance Methods

alternate_name() click to toggle source

Returns alternate name for course(i.e. its subject name followed by its id).

# File app/models/course.rb, line 44
def alternate_name
  course_number = self.name.scan(/\d+\s/).first
  self.subject.name + (course_number.present? ? " #{course_number}" : "")
end
subject_name() click to toggle source

Returns subject name of course.

# File app/models/course.rb, line 50
def subject_name
  self.subject.name
end