0

したがって、User モデルには、ユーザーが質問に回答したかどうかを判断しようとするメソッドがあります。ユーザーのhas_many回答、および質問のhas_many回答 (through選択肢)。これが私がこれまでに持っているものです:

  def has_answered(question)
    has_answered_question = false
    answers.each { |answer| 
      has_answered_question = true if answer.question == question
    }
    has_answered_question
  end

これをきれいにする方法はないかと考えていました。ブール値なしでこれを行う方法があり、おそらく現在行っているよりも少ない行で行う必要があるようです。これを行うための提案/方法が多ければ多いほど良いです。すべての提案を歓迎します。

4

1 に答える 1

2
answers.any? { |answer|  answer.question == question }

また

Answer.where('user_id = ?', user.id).where('question_id = ?', question.id).limit(1).count > 0
于 2012-06-19T20:16:53.977 に答える