2010-05-08 2 views
0

Я пытаюсь получить две вещи сделано после того, как пользователь нажимает на ссылку:Практическое руководство: обновление после: успех с помощью метода link_to_remote Rails?

  1. удалить DIV
  2. Добавить еще один элемент в нижней части страницы

Я играл с Rails link_to_remote и что я получаю с ниже код является то, что элемент добавляется перед тем ДИВ удаляется:

<%= link_to_remote "&#x2713;", 
    :url => { 
    :controller => :movies, 
    :action => :mark_as_seen, 
    :movie => movie, 
    :render => 'movie' }, 
    :success => "Effect.Fade('movie_#{movie.id}_wrapper', { duration: 0.4 })", 
    :update => "movies", :position => "bottom", 
    :failure => "alert('Ooops! An error occurred.')" 
%> 

Я попытался поставить :update и :position в обратном вызове :complete, но ничего не произошло. И когда я положил их обоих в обратный вызов :success (после Effect.Fade), все, что я получаю, является ошибкой синтаксического анализа.

Любая идея?

Спасибо,

Кевин

ответ

2

Я не совсем уверен, если я правильно понимаю, но я предполагаю, что Вы хотите, чтобы ДИВ быть удалены до того, как: действие происходит обновление.

Как обычно это удивительно просто :)

<%= link_to_remote "&#x2713;", 
    :url => { 
    :controller => :movies, 
    :action => :mark_as_seen, 
    :movie => movie, 
    :render => 'movie' }, 
    :before => "Effect.Fade('movie_#{movie.id}_wrapper', { duration: 0.4 })", 
    :update => "movies", :position => "bottom", 
    :failure => "alert('Ooops! An error occurred.')" 
%> 

так просто заменить :success с :before сделает это первым. Надеюсь, это делает то, что вы хотите :)

Объяснение просто: действие :success выполняется после завершения полного действия, а также обновления. Действие перед выполнением удаленного действия выполняется до :before. Например, я использую это все время, чтобы показать счетчик во время удаленного действия.

+0

Nice, вот что я искал! Благодаря :-) –

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