如何通过rails中的link_to_remote缓存部分检索?

Tim*_* T. 5 redirect caching ruby-on-rails

我使用link_to_remote将部分的动态内容拉到页面上.它基本上是当天"todo"数据库中的一长串.

因此,当这个人通过并检查它们时,我想要显示更新的列表,其中包含已完成的行.

目前,我最终需要在项目被勾选后再次点击link_to_remote,但是希望它重定向回到待办事项的"缓存"页面,但是有一个项目排成一行.

我怎么做?

这是主要观点:

<% @campaigns.each do |campaign| %>
<!--link_to_remote(name, options = {}, html_options = nil)-->

<tr><td>   <%= link_to_remote(campaign.name, :update => "campaign_todo",
        :url => {:action => "campaign_todo",
                 :id => campaign.id 
          }
       ) %>  </td></tr> 


<% end %>
</table>

<div id="campaign_todo">


</div>
Run Code Online (Sandbox Code Playgroud)

我想在完成New/Create操作时返回到重定向它的页面.

当有人想要"完成"任务时,它会将他们带到新的行动中.这是控制器:

  def create
    @contact_call = ContactCall.new(params[:contact_call])


    if @contact_call.save
      flash[:notice] = "Successfully created contact call."
      redirect_to contact_path(@contact_call.contact_id)
    else
      render :action => 'new'
    end
  end
Run Code Online (Sandbox Code Playgroud)

我切换到redirect_to:back,它将我带回上面显示的主视图......但是没有PARTIAL.这意味着我需要重新加载部分,这是一个耗时的数据库调用.

1)是否可以返回到通过AJAX调用部分并仍然显示这些结果的视图?2)但是,这个结果是否可以通过CSS标记,表明它已被"检查"?

vrs*_*smn 0

当您将一项标记为“完成”时,您必须创建一个ajax调用,在此操作中您需要

  1. 更新您的列表项以将“line-through”添加到文本装饰中
  2. 创建一个像“after_save”这样的方法来使缓存过期

您可以在这里阅读有关CSS“line-through”的信息: http://www.icelab.eu/en/blog/css-4/xhtml-and-css-strike-alternatives-86.htm

expire_page 和 expire_action 的文档位于: http://api.rubyonrails.org/classes/ActionController/Caching/Sweeping.html