Внимание: впереди продвинутые трюки!
Отобразить их все . Скройте те, которые вам не нужны, с помощью CSS / Javascript, который можно тривиально инициализировать любым количеством способов. (Javascript может читать используемый URL-адрес, параметры запроса, что-то в cookie-файле и т. Д. И т. Д.) Это имеет преимущество в том, что потенциально может играть намного лучше с вашим кешем (зачем кешировать три представления, а затем нужно одновременно завершать их все, когда вы можете кэшировать одно ?), и может быть использован для представления лучшего пользовательского опыта.
Например, , давайте представим, что у вас есть общий интерфейс панели вкладок с суб-навигацией. Если вы визуализируете содержимое всех трех вкладок (т.е. оно написано в HTML) и скрываете две из них, переключение между двумя вкладками является тривиальным Javascript, и даже не попадает на ваш сервер . Большая победа! Нет задержки для пользователя. Нет загрузки сервера для вас.
Хотите очередной большой выигрыш ? Вы можете использовать вариацию этого метода, чтобы обманывать страницы, которые могут, но 99%, распространены среди пользователей, но все еще содержат пользовательское состояние. Например, у вас может быть титульная страница сайта, которая является относительно обычной для всех пользователей, но при входе в систему вы можете сказать «Hiya Bob». Поместите необычную часть («Hiya, Bob») в файл cookie. Пусть эта часть страницы будет прочитана с помощью Javascript, читающего куки. Кэширование всей страницы для всех пользователей независимо от состояния входа в систему при кэшировании страницы. Это буквально способно отрезать 70% доступа из всего стека Rails на некоторых сайтах.
Кому интересно, может ли Rails масштабироваться или нет, если ваш сайт действительно Nginx обслуживает статические ресурсы с новыми HTML-страницами, иногда доставляемыми каким-то Ruby, работающим на каждом тысячном доступе или около того;)