fixed the query, removed scopes, added paranthesis for clarity.

This commit is contained in:
Ralf Teusner
2018-05-16 17:06:04 +02:00
parent f7392b1c05
commit e9462409fd
3 changed files with 6 additions and 4 deletions

View File

@ -416,7 +416,7 @@ class ExercisesController < ApplicationController
return
end
if @is_experimental_course and @rfc_group == :hide_rfc
if @is_experimental_course and (@rfc_group == :hide_rfc)
redirect_to_lti_return_path
return
end

View File

@ -8,8 +8,6 @@ class RequestForComment < ActiveRecord::Base
has_many :subscriptions
scope :unsolved, -> { where(solved: [false, nil]) }
scope :stale, -> { where(exercise.exercise_collections.any{|ec| ec.id = 3}).where("user_id%10 < 3")}
scope :not, ->(scope) { where(scope.where_values.reduce(:and).not) }
def self.last_per_user(n = 5)
from("(#{row_number_user_sql}) as request_for_comments")

View File

@ -66,6 +66,10 @@ class Submission < ActiveRecord::Base
end
def unsolved_rfc
RequestForComment.unsolved.not(:stale).where(exercise_id: exercise).where.not(question: nil).order("RANDOM()").find { | rfc_element |(rfc_element.comments_count < MAX_COMMENTS_ON_RECOMMENDED_RFC) }
# old query
# RequestForComment.unsolved.not(:stale).where(exercise_id: exercise).where.not(question: nil).order("RANDOM()").find { | rfc_element |(rfc_element.comments_count < MAX_COMMENTS_ON_RECOMMENDED_RFC) }
# experimental query:
RequestForComment.unsolved.joins('JOIN exercise_collections_exercises ece ON ece.exercise_id = request_for_comments.exercise_id').where('ece.exercise_collection_id != 3 OR user_id%10 > 3').where.not(question: nil).order("RANDOM()").to_a
end
end