دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
دسته بندی: برنامه نویسی: زبان های برنامه نویسی ویرایش: نویسندگان: Obie Fernandez سری: Addison-Wesley professional Ruby series ISBN (شابک) : 0321445619, 9780321445612 ناشر: Addison-Wesley سال نشر: 2008 تعداد صفحات: 903 زبان: English فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 3 مگابایت
در صورت تبدیل فایل کتاب The Rails way به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب راه ریل نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
اطلاعاتی در مورد قابلیت ها و زیرسیستم های ریل برای طراحی و توسعه نرم افزار با کیفیت تولید ارائه می دهد.
Provides information on the capabilities and subsystems of Rails for the design and development of production-quality software.
Оглавление Предисловие Введение Благодарности Глава 1 Среда и конфигурирование Rails Запуск Параметры среды по умолчанию Начальная загрузка Пакеты RubyGem Инициализатор Подразумеваемые пути загрузки Rails, модули и код автозагрузки Встройка Rails Info Конфигурирование Дополнительные конфигурационные параметры Режим разработки Динамическая перезагрузка классов Загрузчик классов в Rails Режим тестирования Режим эксплуатации Протоколирование Протоколы Rails Анализ протоколов Syslog Заключение Глава 2 Работа с контроллерами Диспетчер: с чего все начинается Обработка запроса Познакомимся с диспетчером поближе Рендеринг представления Если сомневаетесь, рисуйте Явный рендеринг Рендеринг шаблона другого действия Рендеринг совершенно постороннего шаблона Рендеринг подшаблона Рендеринг встроенного шаблона Рендеринг текста Рендеринг структурированных данных других типов Пустой рендеринг Параметры рендеринга Переадресация Коммуникация между контроллером и представлением Фильтры Наследование фильтров Типы фильтров Упорядочение цепочки фильтров Aroundфильтры Пропуск цепочки фильтров Условная фильтрация Прерывание цепочки фильтров Потоковая отправка send_data(data, options = {}) send_file(path, options = {}) Как заставить сам вебсервер отправлять файлы Заключение Глава 3 Маршрутизация Две задачи маршрутизации Связанные параметры Метапараметры («приемники») Статические строки Файл routes.rb Маршрут по умолчанию О поле :id Генерация маршрута по умолчанию Модификация маршрута по умолчанию Предпоследний маршрут и метод respond_to Метод respond_to и заголовок HTTPAccept Пустой маршрут Самостоятельное создание маршрутов Использование статических строк Использование собственных «приемников» Замечание о порядке маршрутов Применение регулярных выражений в маршрутах Параметры по умолчанию и метод url_for Что случилось с :id Использование литеральных URL Маскирование маршрутов Маскирование пар ключ/значение Именованные маршруты Создание именованного маршрута Что лучше: name_path или name_url? Замечания Как выбирать имена для маршрутов Синтаксическая глазурь Еще немного глазури? Метод организации контекста with_options Заключение Глава 4 REST, ресурсы и Rails О REST в двух словах REST в Rails Маршрутизация и CRUD Ресурсы и представления Ресурсы REST и Rails От именованных маршрутов к поддержке REST И снова о глаголах HTTP Стандартные RES -совместимые действия контроллеров Хитрость для методов PUT и DELETE Одиночные и множественные RESTсовместимые маршруты Специальные пары: new/create и edit/update Одиночные маршруты к ресурсам Вложенные ресурсы Явное задание :path_prefix Явное задание :name_prefix Явное задание RESTсовместимых контроллеров А теперь все вместе Замечания О глубокой вложенности Настройка REST-совместимых маршрутов Маршруты к дополнительным действиям Дополнительные маршруты к наборам Замечания Ресурсы, ассоциированные только с контроллером Различные представления ресурсов Метод respond_to Форматированные именованные маршруты Набор действий в Rails для REST index show destroy new и create edit и update Заключение Глава 5 Размышления о маршрутизации в Rails Исследование маршрутов в консоли приложения Распечатка маршрутов Анатомия объекта Route Распознавание и генерация с консоли Консоль и именованные маршруты Тестирование маршрутов Подключаемый модуль Routing Navigator Заключение Глава 6 Работа с ActiveRecord Основы Миграции Создание миграций Migration API Определение колонок Методы в стиле макросов Объявление отношений Примат соглашения над конфигурацией Приведение к множественному числу Задание имен вручную Унаследованные схемы именования Определение атрибутов Значения атрибутов по умолчанию Сериализованные атрибуты CRUD: создание, чтение, обновление, удаление Создание новых экземпляров ActiveRecord Чтение объектов ActiveRecord Чтение и запись атрибутов Доступ к атрибутам и манипулирование ими до приведения типов Перезагрузка Динамический поиск по атрибутам Специальные SQLзапросы Кэш запросов Обновление Обновление с условием Обновление конкретного экземпляра Обновление конкретных атрибутов Вспомогательные методы обновления Контроль доступа к атрибутам Удаление и уничтожение Блокировка базы данных Оптимистическая блокировка Пессимистическая блокировка Замечание Дополнительные средства поиска Условия Упорядочение результатов поиска Параметры limit и offset Параметр select Параметр from Группировка Параметры блокировки Соединение и включение ассоциаций Параметр readonly Соединение с несколькими базами данных в разных моделях Прямое использование соединений с базой данных Модуль DatabaseStatements Другие методы объекта connection Другие конфигурационные параметры Заключение Глава 7 Ассоциации в ActiveRecord Иерархия ассоциаций Отношения один-ко-многим Добавление ассоциированных объектов в набор Методы класса AssociationCollection Ассоциация belongs_to Перезагрузка ассоциации Построение и создание связанных объектов через ассоциацию Параметры метода belongs_to Ассоциация has_many Параметры метода has_many Методы проксиклассов Отношения «многие-ко-многим» Метод has_and_belongs_to_many Конструкция has_many :through Параметры ассоциации has_many :through Отношения один к одному Ассоциация has_one Параметры ассоциации has_one Несохраненные объекты и ассоциации Ассоциации одинкодному Наборы Расширения ассоциаций Класс AssociationProxy Методы reload и reset Методы proxy_owner, proxy_reflection и proxy_target Заключение Глава 8 Валидаторы в ActiveRecord Нахождение ошибок Простые декларативные валидаторы validates_acceptance_of validates_associated validates_confirmation_of validates_each validates_inclusion_of и validates_exclusion_of validates_existence_of validates_format_of validates_length_of validates_numericality_of validates_presence_of validates_uniqueness_of Исключение RecordInvalid Общие параметры валидаторов :allow_nil :if :message :on Условная проверка Замечания по поводу применения Работа с объектом Errors Манипулирование набором Errors Проверка наличия ошибок Нестандартный контроль Отказ от контроля Заключение Глава 9 Дополнительные возможности ActiveRecord Обратные вызовы Регистрация обратного вызова Парные обратные вызовы before/after Прерывание выполнения Примеры применения обратных вызовов Особые обратные вызовы: after_initialize и after_find Классы обратных вызовов Наблюдатели Соглашения об именовании Регистрация наблюдателей Момент оповещения Наследование с одной таблицей Отображение наследования на базу данных Замечания об STI STI и ассоциации Абстрактные базовые классы моделей Полиморфные отношения has_many Случай модели с комментариями Замечание об ассоциации has_many Модули как средство повторного использования общего поведения Несколько слов об области видимости класса и контекстах Обратный вызов included Модификация классов ActiveRecord во время выполнения Замечания Ruby и предметноориентированные языки Заключение Глава 10 ActionView Основы ERb Практикум по ERb Компактификация вывода ERb Закомментаривание ограничителей ERb Условный вывод RHTML? RXML? RJS? Макеты и шаблоны Подстановка содержимого Переменные шаблона Защита целостности представления от данных, введенных пользователем Подшаблоны Простые примеры Повторное использование подшаблонов Разделяемые подшаблоны Передача переменных подшаблонам Рендеринг наборов Протоколирование Кэширование Кэширование в режиме разработки? Кэширование страниц Кэширование действий Кэширование фрагментов Истечение срока хранения кэшированного содержимого Автоматическая очистка кэша с помощью дворников Протоколирование работы кэша Подключаемый модуль Action Cache Хранилища для кэша Заключение Глава 11 Все о помощниках Модуль ActiveRecordHelper Отчет об ошибках контроля Автоматическое создание формы Настройка выделения ошибочных полей Модуль AssetTagHelper Помощники для формирования заголовка Только для подключаемых модулей: добавление включаемых по умолчанию JavaScriptсценариев Модуль BenchmarkHelper Модуль CacheHelper Модуль CaptureHelper Модуль DateHelper Помощники для выбора даты и времени Помощники для задания отдельных элементов даты и времени Параметры, общие для всех помощников, связанных с датами Методы distance_in_time со сложными именами Модуль DebugHelper Модуль FormHelper Создание форм для моделей ActiveRecord Как помощники формы получают свои значения Модуль FormOptionsHelper Помощники select Другие помощники Модуль FormTagHelper Модуль JavaScriptHelper Модуль NumberHelper Модуль PaginationHelper will_paginate paginator Paginating Find Модуль RecordIdentificationHelper Модуль RecordTagHelper Модуль TagHelper Модуль TextHelper Модуль UrlHelper Написание собственных модулей Мелкие оптимизации: помощник Title Инкапсуляция логики представления: помощник photo_for Более сложное представление: помощник breadcrumbs Обертывание и обобщение подшаблонов Помощник tiles Обобщение подшаблонов Заключение Глава 12 Ajax Rails Библиотека Prototype Подключаемый модуль FireBug Prototype API Функции верхнего уровня Объект Class Расширения класса JavaScript Object Расширения класса JavaScript Array Расширения объекта document Расширения класса Event Расширения класса JavaScript Function Расширения класса JavaScript Number Расширения класса JavaScript String Объект Ajax Объект Ajax.Responders Объект Enumerable Класс Hash Объект ObjectRange Объект Prototype Модуль PrototypeHelper link_to_remote remote_form_for periodically_call_remote observe_field observe_form RJS – пишем Javascript на Ruby RJSшаблоны <<(javascript) [](id) alert(message) call(function, *arguments, &block) delay(seconds = 1) { ... } draggable(id, options = {}) drop_receiving(id, options = {}) hide(*ids) insert_html(position, id, *options_for_render) literal (code) redirect_to(location) remove(*ids) replace(id, *options_for_render) replace_html(id, *options_for_render) select(pattern) show(*ids) sortable(id, options = {}) toggle(*ids) visual_effect(name, id = nil, options = {}) JSON Перетаскивание мышью Сортируемые списки Автозавершение Редактирование на месте Заключение Глава 13 Управление сеансами Что хранить в сеансе Текущий пользователь Рекомендации по работе с сеансами Способы организации сеансов Отключение сеансов для роботов Избирательное включение сеансов Безопасные сеансы Хранилища ActiveRecord SessionStore PStore (на базе файлов) Хранилище DRb Хранилище memcache Спорное хранилище CookieStore Жизненный цикл сеанса и истечение срока хранения Подключаемый модуль Session Timeout Отслеживание активных сеансов Повышенная безопасность сеанса Удаление старых сеансов Cookies Чтение и запись cookies Заключение Глава 14 Регистрация и аутентификация Подключаемый модуль Acts as Authenticated Установка и настройка Модель User Класс AccountController Получение имени пользователя из кука Текущий пользователь Протоколирование в ходе тестирования Заключение Глава 15 XML и ActiveResource Метод to_xml Настройка результата работы to_xml Ассоциации и метод to_xml Продвинутое применение метода to_xml Динамические атрибуты Переопределение метода to_xml Уроки реализации метода to_xml в классе Array Класс XML Builder Разбор XML Преобразование XML в хеши Библиотека XmlSimple Приведение типов Библиотека ActiveResource Метод find Метод create Метод update Метод delete Заголовки Настройка Хешированные формы Заключение Глава 16 ActionMailer Конфигурирование Модели почтальона Подготовка исходящего почтового сообщения Почтовые сообщения в формате HTML Многочастные сообщения Вложение файлов Отправка почтового сообщения Получение почты Справка по TMail::Mail API Обработка вложений Конфигурирование Заключение Глава 17 Тестирование Терминология Rails, относящаяся к тестированию К вопросу об изоляции… Mockобъекты в Rails Настоящие Mockобъекты и заглушки Тесты сопряжения О путанице в терминологии Класс Test::Unit Прогон тестов Фикстуры Фикстуры в формате CSV Доступ к записям фикстуры из тестов Динамические данные в фикстурах Использование данных из фикстур в режиме разработки Генерация фикстур из данных, используемых в режиме разработки Параметры фикстур Никто не любит фикстуры Не все так плохо с фикстурами Утверждения Простые утверждения Утверждения Rails По одному утверждению в каждом тестовом методе Тестирование моделей с помощью автономных тестов Основы тестирования моделей Что тестировать Тестирование контроллеров с помощью функциональных тестов Структура и подготовка Методы функциональных тестов Типичные утверждения Тестирование представлений с помощью функциональных тестов Тестирование поведения RJS Другие методы выборки Тестирование правил маршрутизации Тесты сопряжения в Rails Основы API тестов сопряжения Работа с сеансами Задания Rake, относящиеся к тестированию Приемочные тесты Приемочные тесты с самого начала Система Selenium Основы Приступая к работе RSelenese Заключение Глава 18 RSpec on Rails Введение в RSpec Обязанности и ожидания Предикаты Нестандартные верификаторы ожиданий Несколько примеров для одного поведения Разделяемые поведения Mockобъекты и заглушки в RSpec Прогон «спеков» Установка RSpec и подключаемого модуля RSpec on Rails Подключаемый модуль RSpec on Rails Генераторы Спецификации модели Спецификации контроллеров Спецификации представлений Спецификации помощников Обстраивание Инструменты RSpec Autotest RCov Заключение Глава 19 Расширение Rails с помощью подключаемых модулей Управление подключаемыми модулями Повторное использование кода Сценарий plugin Система Subversion и сценарий script/plugin Использование Piston Установка Импорт внешней библиотеки Конвертация существующих внешних библиотек Обновление Блокировка и разблокировка Свойства Piston Написание собственных подключаемых модулей Точка расширения init.rb Каталог lib Расширение классов Rails Файлы README и MITLICENSE Файлы install.rb и uninstall.rb Специальные задания Rake Rakefile подключаемого модуля Тестирование подключаемых модулей Заключение Глава 20 Конфигурации Rails в режиме эксплуатации Краткая история промышленной эксплуатации Rails Предварительные условия Контрольный перечень Серверное и сетевое окружение Ярус вебсервера Ярус сервера приложений Ярус базы данных Мониторинг Управление версиями Установка Ruby Система RubyGems Rails Mongrel Mongrel Cluster Nginx Subversion MySQL Monit Capistrano Конфигурация Конфигурирование Mongrel Cluster Конфигурирование Nginx Конфигурирование Monit Конфигурирование Capistrano Конфигурирование сценариев init Сценарий init для Nginx Сценарий init для Mongrel Сценарий init для Monit Развертывание и запуск Другие замечания по поводу промышленной системы Избыточность и перехват управления при отказе Кэширование Производительность и масштабируемость Безопасность Удобство сопровождения Заключение Глава 21 Capistrano Обзор системы Capistrano Терминология Основы Что Capistrano сделала, а что – нет Приступаем к работе Установка Готовим приложение Rails для работы с Capistrano Конфигурирование развертывания О сценарии spin Подготовка машины развертывания Развертываем! Переопределение предположений Capistrano Использование удаленной учетной записи пользователя Изменение системы управления версиями, используемой Capistrano Работа без доступа к системе управления версиями с машины развертывания Если файл database.yml не хранится в репозитории СУВ Полезные рецепты Capistrano Переменные и их область видимости Упражнение 1. Промежуточный сервер Упражнение 2. Управление другими службами Развертывание на нескольких серверах Транзакции Доступ к машинам развертывания через прокси-серверы Заключение Глава 22 Фоновая обработка Сценарий script/runner Приступаем к работе Несколько слов об использовании Замечания по поводу script/runner DRb Простой DRbсервер Использование DRb из Rails Замечания о DRb Ресурсы BackgrounDRb Приступаем к работе Конфигурирование Знакомство с принципами работы BackgrounDRb Использование класса MiddleMan Подводные камни Замечания о BackGrounDRb Daemons Порядок применения Введение в потоки Замечания о библиотеке Daemons Заключение Приложение A Справочник по ActiveSupport API Приложение B Предметы первой необходимости для Rails Послесловие Алфавитный указатель