Sha256: adee6d3f2c12c5ca571ad830a9d378e2fb0c13daed5b385136deb671875ce9c2

Contents?: true

Size: 1.58 KB

Versions: 6

Compression:

Stored size: 1.58 KB

Contents

module Gaku
  class Students::ClassGroupEnrollmentsController < GakuController

    load_and_authorize_resource :student, class: Gaku::Student
    load_and_authorize_resource :class_group_enrollment, through: :student, class: Gaku::ClassGroupEnrollment

    inherit_resources
    actions :new, :create, :destroy
    respond_to :js, :html

    before_filter :student, only: [:new, :create]
    before_filter :load_data

    def create
      @class_group_enrollment = ClassGroupEnrollment.new(class_group_enrollment_params)
      respond_to do |format|
        if @class_group_enrollment.save && @student.class_group_enrollments << @class_group_enrollment
          @class_group = ClassGroup.find(@class_group_enrollment.class_group_id)
        end
        flash.now[:notice] = t('notice.enrolled', resource: t('student.singular'), to: t(:'class_group.singular'))
        format.js { render 'create' }
      end
    end

    def destroy
      super do |format|
        format.js { render nothing: true }
      end
    end

    protected

    def resource_params
      return [] if request.get?
      [params.require(:class_group_enrollment).permit(class_group_enrollment_attr)]
    end

    private

    def class_group_enrollment_attr
      %i(class_group_id seat_number student_id)
    end

    def class_group_enrollment_params
      params.require(:class_group_enrollment).permit(class_group_enrollment_attr)
    end

    private

    def student
      @student = Student.find(params[:student_id])
    end

    def load_data
      @class_groups = ClassGroup.all.map { |s| [s.name.capitalize, s.id] }
    end

  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
gaku_core-0.0.3 app/controllers/gaku/students/class_group_enrollments_controller.rb
gaku-0.0.3 core/app/controllers/gaku/students/class_group_enrollments_controller.rb
gaku-0.0.2 core/app/controllers/gaku/students/class_group_enrollments_controller.rb
gaku_core-0.0.2 app/controllers/gaku/students/class_group_enrollments_controller.rb
gaku-0.0.1 core/app/controllers/gaku/students/class_group_enrollments_controller.rb
gaku_core-0.0.1 app/controllers/gaku/students/class_group_enrollments_controller.rb