simplified some Active Record queries

This commit is contained in:
Hauke Klement
2015-03-11 14:31:19 +01:00
parent a06e20b6c5
commit a8bda864df
6 changed files with 6 additions and 6 deletions

View File

@@ -2,7 +2,7 @@ class ErrorsController < ApplicationController
before_action :set_execution_environment
def authorize!
authorize(@error || Error.where(execution_environment_id: @execution_environment.id))
authorize(@error || @execution_environment.errors)
end
private :authorize!

View File

@@ -71,7 +71,7 @@ class ExercisesController < ApplicationController
private :handle_file_uploads
def implement
@submission = Submission.where(exercise_id: @exercise.id, user_id: current_user.id).order('created_at DESC').first
@submission = current_user.submissions.where(exercise_id: @exercise.id).order('created_at DESC').first
@files = (@submission ? @submission.collect_files : @exercise.files).select(&:visible).sort_by(&:name_with_extension)
@paths = collect_paths(@files)
end

View File

@@ -28,7 +28,7 @@ class HintsController < ApplicationController
private :hint_params
def index
@hints = Hint.where(execution_environment_id: @execution_environment.id).order(:name)
@execution_environment.hints.order(:name)
authorize!
end

View File

@@ -52,7 +52,7 @@ class Submission < ActiveRecord::Base
end
def siblings
Submission.where(exercise_id: exercise_id, user_id: user_id, user_type: user_type)
user.submissions.where(exercise_id: exercise_id)
end
def to_s

View File

@@ -22,7 +22,7 @@ class ExercisePolicy < AdminOrAuthorPolicy
if @user.admin?
@scope.all
elsif @user.internal_user?
@scope.where("user_id = #{@user.id} OR public = TRUE OR (team_id IS NOT NULL AND team_id IN (SELECT t.id FROM teams t JOIN internal_users_teams iut ON t.id = iut.team_id WHERE iut.internal_user_id = #{@user.id}))")
@scope.where('user_id = ? OR public = TRUE OR (team_id IS NOT NULL AND team_id IN (SELECT t.id FROM teams t JOIN internal_users_teams iut ON t.id = iut.team_id WHERE iut.internal_user_id = ?))', @user.id, @user.id)
else
@scope.none
end