2010-07-28 3 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 и изменить свое имя действия для уничтожения. Я также добавил 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

Смежные вопросы