2016-11-24 43 views
0

我收到以下錯誤 * 缺少模板測驗/ prev_question,應用/ prev_question與 {:區域設置=> [:EN]:格式=> [: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"*在軌Ajax調用期間失蹤模板

我認爲

<%= 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 [email protected]?%> 
    $('#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 [email protected]?%> 
    $('#multiple-choices').hide(); 
    $('#true-false').show(); 
    $('#short-question').hide(); 
<%elsif [email protected]? %> 
    $('#multiple-choices').hide(); 
    $('#true-false').hide(); 
    $('#short-question').show(); 
<%end%> 

每次我得到的錯誤是缺少模板,請讓我知道什麼 我做錯了我已經看過了上 不少問題計算器,但沒有解決方案工作

+1

你得到了什麼確切的錯誤?請在問題中發佈。 – Pavan

+0

嘗試從視圖中刪除'format js'並添加'respond_to do | format | format.js end' – Sravan

+0

刪除剩餘的格式。 – Sravan

回答

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 
+0

如果你的文件被命名爲'prev_question.js.erb',你可以跳過'render file ...'。 – mysmallidea

+0

感謝您的更新@mysmallidea –

+0

其無法正常工作我嘗試添加format.js,同樣的錯誤 –

0

它看起來像你的prev_question只適用於AJAX,對不對? 那麼爲什麼不這樣做呢?

respond_to(:js)