如何:更新之后:使用link_to_remote Rails方法成功?

时间:2010-05-08 17:48:52

标签: ruby-on-rails prototype link-to-remote

我试图在用户点击链接后完成两件事:

  1. 删除div
  2. 在页面底部添加另一个元素
  3. 我使用Rails link_to_remote,我使用下面的代码获得的元素是在删除div之前添加

    <%= 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之后)时,我得到的只是一个解析错误。

    有什么想法吗?

    谢谢,

    凯文

1 个答案:

答案 0 :(得分:2)

我不完全确定我是否理解正确,但我猜您希望在更新操作发生之前删除div。

像往常一样,这非常简单:)

<%= 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操作。 例如,我一直使用它来在远程操作期间显示一个微调器。