1

我不确定如何研究这个问题,所以也许一些很棒的 Rails 开发人员可以为我指明正确的方向。

我有一个模型,其中包含一个问题和正确答案。在显示视图中,我希望用户在输入字段中输入他们的答案,并在按下提交后,将他们的答案与模型中保存的答案进行比较。我不需要保存他们的答案。

想法?

4

2 回答 2

0

您可以为此使用非 ActiveRecord 模型。像这样的东西:

class UserAnswer # note that this class doesn't inherit from ActiveRecord::Base
  attr_accessor :question_id, :answer

  def initialize(params)
    @question_id = params[:question_id]
    @answer = params[:answer]
  end

  def correct?
    q = QuestionAnswerModel.find(self.question_id)
    q.answer == self.answer
  end
end

然后在您的控制器中,您可以执行以下操作:

user_answer = UserAnswer.new(params) # params contains :question_id and :answer
user_answer.correct? # returns true or false
于 2012-08-29T05:41:01.173 回答
0

一种简单的方法是仅当答案确认等于答案时才保存答案确认。

Model:
  question
  answer
  answer_confirmation

然后像往常一样继续制作表格。

在模型中添加

validate :check_answer

def check_answer
  errors.add(:answer, "Must be the same as answer confirmation") if answer!= answer_confirmation
end
于 2012-08-29T05:41:08.510 回答