除了语言之外的静态页面上的rails缓存

时间:2014-01-08 16:38:05

标签: ruby-on-rails ruby-on-rails-3 caching

我在rails应用程序上开发了一个ruby。它的大部分内容都是静态的(不会对数据库产生影响)。它只会改变对语言的依赖。

我已将语言定义为网址的一部分。例如:“mydomain / en / page”将是英文版。 我已经定义了一个过滤器,如果在url中没有指定语言,它会将他重定向到默认值:

def set_locale
        I18n.locale = params[:locale] || extract_browser_prefered_language || I18n.default_locale
        if params[:locale] == nil
            redirect_to url_for( :locale => I18n.locale )
        end
    end

因此,当用户进入“mydomain”时,他被重定向到“mydomain / en”。

现在我想添加缓存。 正如我之前所说的所有内容都是静态的,我将对所有页面使用“caches_page”。当用户输入“mydomain / en”而不是“mydomain”时,这是有效的,因为重定向过滤器。

我是否可以仅向mydomain / en请求添加页面缓存? 还有其他想法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

我解决了它覆盖ApplicationController

中的cache_page函数
class << self
    def cache_page content, path, p3, p4
        available = %w{ca es en}

        if available.include?(path.split("/")[1])
            super content, path, p3, p4
        end
    end
end
相关问题