class Admins::SubjectSettingsController < Admins::BaseController def index default_sort('created_at', 'desc') subjects = Admins::SubjectQuery.call(params) @sub_disciplines = SubDiscipline.where(subject: 1).pluck(:name,:id) @subjects = paginate subjects.includes(:repertoire, :subject_level_system, :sub_disciplines) end def update sub_discipline_ids = params[:sub_disciplines] || [] sub_ids = sub_discipline_ids.reject(&:blank?).map(&:to_i) old_sub_ids = current_subject.sub_discipline_containers.pluck(:sub_discipline_id) new_ids = sub_ids - old_sub_ids delete_ids = old_sub_ids - sub_ids sub_params = new_ids.map{|sub| {sub_discipline_id: sub}} ActiveRecord::Base.transaction do current_subject.sub_discipline_containers.where(sub_discipline_id: delete_ids).destroy_all current_subject.sub_discipline_containers.create!(sub_params) end end def update_mobile_show subject = Subject.find(params[:subject_id]) subject.update_attributes(:show_mobile => params[:show_mobile]) end private def current_subject @_current_subject ||= Subject.find(params[:id]) end end