в вашем config/environments/production.rb
config.action_controller.perform_caching = true
кэширование отключено по умолчанию для разработки и тестирования и включено для производства.
Кэширование запросов — это функция Rails, которая кэширует набор результатов, возвращаемый каждым запросом, поэтому, если Rails снова встретит тот же запрос для этого запроса, он будет использовать кэшированный набор результатов, а не снова выполнять запрос к базе данных.
Например:
class UsersController < ActionController
def index
# Run a find query
@users = User.all
...
# Run the same query again
@users = User.all
end
end
Второй раз, когда тот же запрос выполняется к базе данных, он фактически не попадет в базу данных. В первый раз, когда результат возвращается из запроса, он сохраняется в кеше запросов (в памяти), а во второй раз он извлекается из памяти.
Проверьте это на своей консоли
Пользовательская нагрузка (мс) SELECT User
.* FROM User
Завершено 200 OK за ?мс (Просмотры: ?мс | ActiveRecord: ?мс)
Вы можете сравнить его с первой и второй загрузкой.
Вы можете использовать гем Dalli из https://github.com/mperham/dalli для хранения кэша в memcached. сервер.
person
Claud Kho
schedule
19.09.2012