我正在努力與我的第一個基於AJAX的應用程序,並需要幫助。我不斷收到此錯誤消息AJAX請求返回缺失模板
Template is missing
Missing template my_apps/refresh, application/refresh with {:locale=>[:en, :en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}. Searched in: * "/Users/csco/MyApps/app/views"
我有一個Ruby on Rails窗體,有多個向下滾動菜單。我希望每次用戶更改其選擇時觸發AJAX請求,以便表單中的某些文本字段可以實時更新,而無需按下按鈕或重新加載整個頁面。
這些是我的代碼的相關部分:局部形式應用/視圖/ my_apps/_form.html.erb的
摘錄由新和編輯方法中使用
<%= form_for(@my_app, :html => {:name => "MyAppInfo"}) do |f| %>
<%= f.label :"Program Administrator" %>
<select class="prog_man_class" id=Program_Manager onChange="this.form.get_results_button_name.click()">
<option value="1">Admin1</option>
<option value="2">Admin2</option>
<option value="3">Admin3</option>
</select>
// more select menus here
// some Ruby code here that ends by assigning a value to the field I want to be
// updated in real time, I called it Total Power ; Total Power value depends on
// the user's selection of Admin1, Admin2, or Admin3, as well as other selected options
<% @my_app.TotalPower=total_power %>
<%= f.label :"Total Power" %>
<%= f.text_field :TotalPower, :size => 6, :style => "text-align:right" %>
<div class="actions">
<%= f.submit "Get Results", :name => "get_results_button_name", :remote => "true" %>
</div>
<% end %>
摘錄應用程序/控制器/my_app.rb
class MyAppController < ApplicationController
// other methods like index, show, new, edit, create, and destroy are here -->
# PUT /my_apps/1
# PUT /my_apps/1.json
def update
@my_app = MyApp.find(params[:id])
respond_to do |format|
if @my_app.update_attributes(params[:my_app])
format.html { render :action => "refresh", :notice => 'Update SUCCESSFUL!' }
format.js
else
format.html { render :action => "edit" }
format.json { render :json => @my_app.errors, :status => :unprocessable_entity }
end
end
end
end
應用程序/視圖/ my_apps/refresh.js.erb(我也試圖將其重命名,沒有運氣或者refresh.js.rjs)
page.replace_html('TotalPower', render(@TotalPower))
任何幫助表示讚賞
感謝Finbarr的回答。我在那裏添加了一個refresh.html.erb文件,但是它只是簡單地加載該文件,不管它包含什麼,所以沒有基於AJAX的刷新發生 – rh4games 2011-12-27 04:51:56