如果满足某些条件,我想删除我的任务ajax-style。我是在link_to_remote的帮助下完成的。问题是link_to_remote想要渲染一个模板而我不想要它。
在我看来(_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
该任务被删除但我收到错误消息:在视图路径app / views中缺少模板任务/ delete_task.erb。
如何让它不搜索模板? 我尝试添加:method =&gt; :删除link_to_remote的末尾并将我的操作名称更改为destroy。我还添加了render:nothing =&gt;真正。我也玩了一些路线。但我仍然总是得到同样的错误。
问题是如何让它不搜索模板,因为我不希望它呈现任何东西?
非常感谢任何答案,Roq。
答案 0 :(得分: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