У меня была такая же проблема. Я нашел два хороших способа решить это. Вариант 1 будет хранить копию всех пользовательских запросов в вашем кэше. Если на вашем сайте много запросов, которые не будут повторяться, или вас беспокоит пространство памяти, это не идеально. Вариант 2 только кэширует страницы без параметров.
1) Поскольку «Wizard of Ogz» связан с, вы можете использовать: cache_path для включения параметров в ключ кэша, чтобы страницы с параметрами кэшировались отдельно от запроса без параметров.
caches_action :page,
:cache_path => proc {|c|
{:tag => c.params}
}
2) Вы можете использовать: если пропустить процесс и не кэшировать действие вообще, если параметры присутствуют. Это не позволит настраивать поиск в вашей кеш-памяти.
caches_action :page,
:if => proc {
params.blank?
}
Если это URL, отличный от вашего корня, вы можете удалить контроллер и параметры действий:
caches_action :page,
:if => proc {
updated_params = params.delete_if { |k,v| ['controller', 'action'].include?(k) }
updated_params.blank?
}
Вот соответствующая информация об API: http://api.rubyonrails.org/classes/ActionController/Caching/Actions.html