simplified some Active Record queries
This commit is contained in:
@ -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!
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -2,7 +2,7 @@ class Whistleblower
|
||||
PLACEHOLDER_REGEXP = /\$(\d)/
|
||||
|
||||
def find_hint(stderr)
|
||||
Hint.where(execution_environment_id: @execution_environment.id).detect do |hint|
|
||||
@execution_environment.hints.detect do |hint|
|
||||
@matches = Regexp.new(hint.regular_expression).match(stderr)
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user