link_to_remote想要渲染一个模板 - 怎么没有?轨道

时间:2010-07-28 12:50:28

标签: ruby-on-rails ruby

如果满足某些条件,我想删除我的任务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。

1 个答案:

答案 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