Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 创建用于在测验中发布答案的完整路径_Ruby On Rails_Rest - Fatal编程技术网

Ruby on rails 创建用于在测验中发布答案的完整路径

Ruby on rails 创建用于在测验中发布答案的完整路径,ruby-on-rails,rest,Ruby On Rails,Rest,我正在申请一门课程。每门课程都有一章,每章都有一个小测验。 对于测验,我希望用户发布关于多项选择题的答案,请参见屏幕截图 然而,我不知道应该将此表单发布到哪个控制器操作方法。问题显示在questionshow操作方法中,因此用户应该将问题的答案发布到问题控制器,然后是哪个操作?或者他应该把它寄给负责人?如果是,采取什么行动?这是一个帖子,但他不是在创造动作,对吧 正如您所看到的,我对如何使“用户回答问题”场景尽可能成为restfull场景感到有点困惑 我的问题模型如下所示: class Ques

我正在申请一门课程。每门课程都有一章,每章都有一个小测验。 对于测验,我希望用户发布关于多项选择题的答案,请参见屏幕截图

然而,我不知道应该将此表单发布到哪个控制器操作方法。问题显示在questionshow操作方法中,因此用户应该将问题的答案发布到问题控制器,然后是哪个操作?或者他应该把它寄给负责人?如果是,采取什么行动?这是一个帖子,但他不是在创造动作,对吧

正如您所看到的,我对如何使“用户回答问题”场景尽可能成为restfull场景感到有点困惑

我的问题模型如下所示:

class Question < ActiveRecord::Base
  belongs_to :quiz
  has_many :answers, dependent: :delete_all
  validates_presence_of :title

  def self.subsequent_question(previous_question)
    where("id > ?", previous_question).first
  end

  def self.is_last?(question_id)
    question = Question.find(question_id)
    last_question = Question.last
    if question.id == last_question.id 
      return true
    else
      return false
    end
  end
end
问题控制员:

class QuestionsController < ApplicationController
  def show
    if Question.is_last?(params[:id])
      question = Question.find(params[:id])
      redirect_to quiz_complete_path(id: question.quiz_id) 
    else
      @question = Question.subsequent_question(params[:id])
      @quiz = Quiz.find(params[:quiz_id])
      @chapter = Chapter.find(@quiz.chapter_id)
      @course = Course.find(@chapter.course_id) 
    end
  end
end
class AnswersController < ApplicationController
  def check_answer
    @answer = Answer.find(params[:id])
    question = Question.find(@answer.question_id)
    if Question.is_last?(question.id)
      redirect_to quiz_complete_path(id: question.quiz_id)
    else
      next_question = Question.subsequent_question(question.id)
      redirect_to show_question_path(id: question.quiz_id, question_id: next_question.id)  
    end
  end
end
答案模式:

class Answer < ActiveRecord::Base
  belongs_to :question
  validates_presence_of :title
  validates_uniqueness_of :is_correct, conditions: -> { where(is_correct: true) }
end
答案控制员:

class QuestionsController < ApplicationController
  def show
    if Question.is_last?(params[:id])
      question = Question.find(params[:id])
      redirect_to quiz_complete_path(id: question.quiz_id) 
    else
      @question = Question.subsequent_question(params[:id])
      @quiz = Quiz.find(params[:quiz_id])
      @chapter = Chapter.find(@quiz.chapter_id)
      @course = Course.find(@chapter.course_id) 
    end
  end
end
class AnswersController < ApplicationController
  def check_answer
    @answer = Answer.find(params[:id])
    question = Question.find(@answer.question_id)
    if Question.is_last?(question.id)
      redirect_to quiz_complete_path(id: question.quiz_id)
    else
      next_question = Question.subsequent_question(question.id)
      redirect_to show_question_path(id: question.quiz_id, question_id: next_question.id)  
    end
  end
end
谢谢你的帮助


Anthony

您在测试小测验1中使用的字体是什么?您能为我们发布更多的代码吗?具体来说,处理新动作的控制器和你的问答模型:Hi Read,我使用基础框架,我相信他们使用HelviTi-NeUE字体家族。我添加了问题模块和QuestionsController,还有我问题的答案模型和答案控制器代码尼斯-苹果在iOS7中使用Helvetica Neue!