0

所以我在我的用户模型中有一个方法试图确定用户是否回答了问题。一个用户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 回答