- Технически, в Главе 9, мы обращались c сессиями как с ресурсом, но они не сохранялись в базе данных как пользователи и микросообщения. ↑
- Атрибут
contentбудетstring, но, как кратко отмечалось в Разделе 2.1.2, для более длинных текстовых полей Вам следует использовать тип данныхtext. ↑ - Более подробную информацию о Factory Girl ассоциациях, включая множество доступных опций, см. Factory Girl documentation. ↑
- Напомним, что
created_atиupdated_atэто “волшебные” столбцы, так что все явные значения инициализации магическим образом перезаписываются. ↑ - В смысле семантической разметки, вероятно, было бы лучше использовать нумерованный список, но в этом случае вертикальное выравнивания текста и изображений было бы гораздо более трудным, чем с таблицами. См. упражнение в Разделе 11.5 если вы настаиваете на трудностях с семантической версией. ↑
- В случае, если вам интересно, метод ассоциаций
countумен, и выполняет подсчет непосредственно в базе данных. В частности, он не вытягивает все микросообщения из базы данных и не вызывает затемlengthна получившийся массив, так как это стало бы страшно неэффективно при увеличении числа микросообщений. Вместо этого, он просит базу данных подсчитать количество микросообщений с даннымuser_id. Кстати, в маловероятном случае при котором count все же будет узким местом в вашем приложении, Вы можете сделать его еще быстрее с counter cache. ↑ - Для удобства, Листинг 11.19 на самом деле включает все CSS необходимые для этой главы. ↑
- (т.е., пять с пользовательскими Gravatar-ами, и один с дефолтным Gravatar) ↑
- Следите за своим
log/development.logфайлом, если Вам интересно, какой SQL генерирует этот метод. ↑ - Текст lorem ipsum гема Faker случаен, так что контент Ваших образцов микросообщений будет отличаться. ↑
- Остальные два ресурса это Users в Разделе 8.1 и Sessions в Разделе 9.1. ↑
- Мы отмечали в Разделе 9.3.2, что вспомогательные методы по умолчанию доступны только в представлениях, но мы сделали вспомогательный метод Sessions доступным также и в контроллерах, добавив
include SessionsHelperв контроллер Application (Листинг 9.11). ↑ - Изучение методов, таких как
include?является одной из причин, по которым, как отмечалось в Разделе 1.1.1, я рекомендую читать книги о чистом Ruby после окончания этого учебника. ↑ - См. в Rails Guide Интерфейс запросов Active Record for more on
whereand the like (# предположительно: непередаваемый английский юмор). ↑ - К сожалению, возвращение пагинированного потока сообщений не работает в данном случае. Реализуйте это и кликните по пагинационной ссылке чтобы увидеть почему. ( Rails Tutorial screencasts раскрывают этот вопрос более подробно.) ↑