0

我收到以下错误 * 缺少模板测验/prev_question、application/prev_question with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb , :builder, :raw, :ruby, :coffee, :jbuilder]}。在以下位置搜索:*“/home/ubuntu/workspace/app/views”*“/usr/local/rvm/gems/ruby-2.3.0/gems/devise-4.2.0/app/views”*

在我看来

<%= form_tag(prev_question_path(:id =>@quiz.id), method: 'post', remote: true, :format => 'js') do %>
   <%= hidden_field_tag :authenticity_token, form_authenticity_token %>
    <%= submit_tag("Prev",:class =>"btn btn-success") %>

在我的控制器中

  def prev_question
    @quiz = Quiz.find(params[:id])
    @question = @quiz.questions.order! 'created_at DESC'.first
    respond_to do |format|
      format.html {}
      format.json {}
    end

我创建了一个 prev_question.js.erb 文件

<% if !@question.option1.nil?%>
    $('#multiple-choices').show();
    $('#true-false').hide();
    $('#short-question').hide();
    $('#question_option1).val('<%= @question.option1%>')
    $('#question_option2).val('<%= @question.option2%>')
    $('#question_option3).val('<%= @question.option3%>')
    $('#question_option4).val('<%= @question.option4%>')
<%elsif !@question.anst.nil?%>
    $('#multiple-choices').hide();
    $('#true-false').show();
    $('#short-question').hide();
<%elsif !@question.anss.nil? %>
    $('#multiple-choices').hide();
    $('#true-false').hide();
    $('#short-question').show();
<%end%>

每次我收到缺少模板的错误时,请让我知道我做错了什么我在stackoverflow上查看了很多问题,但没有解决方案

4

2 回答 2

1

试试这个

ajax调用时需要响应js格式。

def prev_question
    @quiz = Quiz.find(params[:id])
    @question = @quiz.questions.order! 'created_at DESC'.first
    respond_to do |format|
      format.html {}
      format.json {}
      format.js
    end
end
于 2016-11-24T04:44:24.950 回答
0

看起来你prev_question只适用于 AJAX,对吧?那么为什么不这样做呢?

respond_to(:js)
于 2016-11-24T07:45:51.620 回答