作爲任務管理應用程序用戶,我想單擊任務上的「已完成」鏈接以將任務的分辨率記錄爲已完成。通過AJAX在Rails 3中通過簡單鏈接(link_to)更新模型屬性
我希望這是一個使用Rails 3 Unobtrusive JavaScript(UJS)方式的AJAX請求。我已經調試了很長一段時間,所以任何幫助將不勝感激。
這裏是的link_to調用我的觀點裏製作:
<%= link_to "Completed", task_path(:id => task.id, :resolution => "completed"), :remote => true, :method => :put %>
,這裏是我的任務控制器更新方法:
class TasksController < ApplicationController
respond_to :js
def update
@task = Task.find(params[:id])
@task.update_attributes(params[:task])
respond_with(@task)
end
end
觀看與Chrome的開發者工具的網絡流量就似乎Put請求正在對正確的URL進行,包括URL參數(tasks/{:id}?resolution = completed),但Preview會顯示以下錯誤消息:
Template is missing
Missing template tasks/update, application/update with {:locale=>[:en], :formats=>[:js, :html], :handlers=>[:erb, :builder, :coffee]}.
Searched in: * "C:/Documents and Settings/Corey Quillen/My Documents/Software Engineering/Projects/Cleaner Card/cleaner_card/app/views"
謝謝你的迴應。這確實消除了錯誤,但該屬性仍未在數據庫中更新。我需要改變控制器中的某些東西嗎? –
嘗試在控制器中調試參數。你可以粘貼傳遞給控制器的參數嗎? – varunvlalan
我決定嵌入一個帶有隱藏表單域的隱藏表單來更新屬性並且工作。謝謝你的幫助。 –