Для приложения викторины я пытаюсь отображать ACTIVE вопросы, в которых текущий пользователь не ответил. В таблице ответов есть user_id и question_id, которые я пытаюсь использовать. Я думал, что я был близок со следующим запросом (в static_pages_controller.rb:.Поиск объектов через несколько условий в рельсах
@questions = Question.active_question.where.not(id: @user.answers)
Это, кажется, не работает во всех ситуациях, когда я тестирую его, хотя я чувствую, что я близко, но не уверен, где идти отсюда. Довольно новое в Rails так высоко ценим любую помощь!
question.rb
has_many :answers
scope :active_questions, -> { where("? BETWEEN start AND end", Time.now.to_date)}
scope :activeAtDate, lambda{ |date = Date.today| where("? BETWEEN start AND end", date) }
answer.rb
belongs_to :question
belongs_to :user
scope :user_answered, lambda {|q| where("question_id == (?)", q) }
validates_uniqueness_of :question_id, scope: :user_id
user.rb
has_many :answers
static_pages_controller.rb
def index
@user = current_user
if user_signed_in?
if @user.manager_id != nil
@manager = @user.manager_id
end
@my_team = User.where("manager_id = ? AND id != ?", @manager, @user.id)
@questions = Question.active_question.where.not(id: @user.answers)
end
@new_answer = Answer.new
end
Это сработало отлично! Я всегда был очень близок к тому, чтобы его получить, но что-то отбросит. Это реализация, которую я точно искал. В очередной раз благодарим за помощь. – Prkl8r