gpt4 book ai didi

ruby-on-rails - rails fresh_when/stale?用法

转载 作者:行者123 更新时间:2023-12-01 06:47:15 24 4
gpt4 key购买 nike

在我的 post_index 操作中,我生成了不同类型的“@posts”,例如..

def index
case params[:listing_type]
when "all"
@posts = get_all_post_from_memcached
when "most_popular"
@posts = get_all_most_popular_from_memcached

respond_to do |format|
format.html
format.js #for ajax reqeusts
format.xml #for rss etc
end
end
end

##updated
def index
case params[:listing_type]
when "all"
#the key here is teh same key I used for memcached
if stale?(:etag => 'all_posts_key')
@posts = get_all_post_from_memcached
else
head :not_modified and return
end
when "most_popular"
if stale?(:etag => 'most_popular_key')
@posts = get_all_most_popular_from_memcached
else
head :notified and return
end
respond_to do |format|
format.html
format.js #for ajax reqeusts
format.xml #for rss etc
end
end
end

据我了解 fresh_when需要一个 etag , 如果不同类型的渲染没有区别就使用它(在我的情况下,渲染是基于 html 或 ajax 不同的)


stale?还需要一个 etag并围绕 response_to 块。

在这种情况下, etag将根据不同的列表类型而有所不同。但似乎没有太多的灵活性 fresh_whenstale?可以在这里使用吗?

谢谢

更新。我稍微改变了原始块,现在得到一个双重渲染错误我做错了什么,应该“头:通知并返回”只是返回标题而不是触摸 respond_to堵塞?

最佳答案

如果您有像 show 方法中那样的特殊响应处理,那么使用 stale? helper 。如果你没有像 edit 方法那样的特殊响应处理并使用默认渲染机制(即,你没有使用 response_to 或自己调用渲染),那么使用 fresh_when。

关于ruby-on-rails - rails fresh_when/stale?用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3744090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com