2010-07-28 85 views
1

如果滿足一些條件,我想刪除我的任務ajax-style。我在link_to_remote的幫助下做到這一點。事情是,link_to_remote想渲染一個模板,我不希望它。link_to_remote想渲染一個模板 - 怎麼樣? rails

在我看來(_task_sth.html.erb):

<%= link_to_remote "Delete task", :url => {:controller => 'tasks', :action => 'delete_task', :task_pers_id => sorted_user_task.id}, :complete => "$('#{delete_task_domid}').hide();" %> 

在我的控制器(tasks_controller.rb):

def delete_task 
    task_pers = TaskPersonalization.find(params[:task_pers_id]) 
    horse_task = task_pers.task 
    task_pers.destroy 
    if horse_task.task_personalizations.empty? 
    horse_task.destroy 
    end 
end 

任務被刪除,但我得到一個錯誤說:失蹤模板任務/ delete_task.erb查看路徑的應用程序/視圖。

我該如何讓它不搜索模板? 我嘗試添加:method =>:在link_to_remote結尾處刪除並將我的操作名稱更改爲destroy。我也添加了render:nothing => true。我也玩過一些路線。但仍然我總是得到同樣的錯誤。

問題是我該如何讓它不搜索模板,因爲我不想它渲染任何東西?

對於任何答案Roq都會非常感激。

回答

4

添加render :nothing => true時是否有同樣的錯誤?真奇怪。

Rails正在嘗試搜索模板,因爲您的操作中沒有render。所以要避免它,你需要明確地調用方法:

def delete_task 
    task_pers = TaskPersonalization.find(params[:task_pers_id]) 
    horse_task = task_pers.task 
    task_pers.destroy 
    if horse_task.task_personalizations.empty? 
    horse_task.destroy 
    end 
    render :nothing => true, :status => 200 
end 
+0

非常感謝你!它現在有效! – necker 2010-07-28 13:24:31