Sha256: d7473e8ab55eca30d80603f6183fc08a3e29964cba0ea7b141980f0c56a8a44f
Contents?: true
Size: 923 Bytes
Versions: 10
Compression:
Stored size: 923 Bytes
Contents
module Gaku class SemesterConnector < ActiveRecord::Base belongs_to :semester belongs_to :semesterable, polymorphic: true validates :semester_id, :semesterable_type, :semesterable_id, presence: true validates :semester_id, uniqueness: { scope: %w( semesterable_type semesterable_id ), message: I18n.t(:'semester.already') } validates :semesterable_type, inclusion: { in: %w( Gaku::ClassGroup Gaku::Course ), message: '%{value} is not a valid' } %w( course class_group ).each do |resource| define_singleton_method "group_by_semester_#{resource}" do where(semesterable_type: extract_model_name(resource)).includes([:semester, :semesterable]) .group_by(&:semester_id) end end def self.extract_model_name(resource) resource.insert(0, 'gaku/').classify end end end
Version data entries
10 entries across 10 versions & 2 rubygems