【问题标题】:missing template during ajax call in rails在rails中的ajax调用期间缺少模板
【发布时间】:2017-04-08 06:25:13
【问题描述】:

我收到以下错误 * 缺少模板测验/prev_question、application/prev_question {: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 但没有解决方案

【问题讨论】:

  • 您得到的确切错误是什么?请在问题中发布。
  • 尝试从视图中删除format js并添加respond_to do |format| format.js end
  • 删除剩余的格式。

标签: ruby-on-rails ajax form-for missing-template


【解决方案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

【讨论】:

  • 如果你的文件名为prev_question.js.erb,你可以跳过render file...
  • 它不起作用我尝试添加 format.js ,同样的错误
  • @MuhammadHamzaAltaf 您可以在提交表单时发布日志吗?这样我们就可以知道rails期望的格式是js还是HTML。
【解决方案2】:

看起来您的prev_question 仅适用于 AJAX,对吧? 那为什么不直接这样做呢?

respond_to(:js)

【讨论】:

    猜你喜欢
    • 2016-04-26
    • 1970-01-01
    • 1970-01-01
    • 2016-11-24
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多