Ruby on rails что это
Что входит
в Rails?
Динамичный AJAX-интерфейс, обработка запросов и выдача данных в контроллерах, предметная область, отраженная в базе данных, — для всего этого Rails предоставляет однородную среду разработки на Ruby. Все, что необходимо для начала — база данных и веб-сервер.
Кто пользуется
Rails?
Rails используют все — от стартапов и некоммерческих организаций до крупного бизнеса. Rails — это прежде всего инфраструктура, поэтому среда великолепно подходит для любого типа веб-приложений, будь это программы для организации совместной работы, поддержки сообществ, электронного бизнеса, управления содержанием, статистики, управления. Список можете продолжить сами. Примеры:
Basecamp: Управление проектами.
Rails начался с этого приложения 37signals.
Campfire: Групповой чат для бизнеса.
Pushing the limits of Ajax in Rails.
43things: Поставь себе цели в жизни и добейся их.
ODEO: Записывай и распространяй аудио.
Strongspace: Безопасное хранилище файлов.
Что еще
нужно?
Rails отлично работает со многими веб-серверами и СУБД. В качестве веб-сервера рекомендуется использовать Apache или nginx с модулем Phusion Passenger. Rails также можно разворачивать используя Unicorn, Thin, Mongrel или FastCGI. В качестве СУБД можно использовать MySQL, PostgreSQL, SQLite, Oracle, SQL Server, DB2 или Firebird. Использовать Rails можно на практически любой операционной системе, однако для развертывания мы рекомендуем системы семейства *nix.
Ruby on Rails был создан David Heinemeier Hansson в партнерстве с 37signals, расширен и усовершенствован усилиями команды разработчиков ядра Rails и сотнями open source разработчиков. Rails распространяется под лицензией MIT. Ruby распространяется под лицензией Ruby License.
«Rails», «Ruby on Rails» и логотип Rails являются зарегистрированными торговыми знаками David Heinemeier Hansson. Все права защищены.
Поддержка сайта — Evil Martians. Вопросы, предложения? Свяжитесь с нами.
Что такое Ruby on Rails?
Russian (Pусский) translation by Anton L (you can also view the original English article)
Фреймворк веб-разработки для пуристов
В 1995 году, вышла версия Ruby 0.95 от Yukihiro Matsumoto, Ruby позиционирует себя, как чистый, объектно-ориентированный (OO), язык программирования общего назначения:
Я был фанатом языков и OO 15 лет, я всегда хотел работать с подлинным объектно-ориентированным, легким в использовании, скриптовым языком. Я долго искал, но так и не смог найти. Так что я решил создать свой собственный. — Y. Matsumoto
Затем в 2004, David Heinemeier Hansson выпустил первую версию Ruby on Rails фреймворка для создания веб-приложений, который он использовал, чтобы запустить приложение Basecamp, для организации работы своей команды. Затем, в 2005 году, было решено сделать Ruby on Rails доступным для всех желающих и распространять его, как фреймворк с открытым исходным кодом, после чего Apple выпустил его вместе с OS X Leopard в 2007.
Rails используется многими веб-приложениями, с которыми вы скорее всего уже знакомы: GitHub, Shopify, Airbnb, Twitch, SoundCloud, Hulu, Zendesk, Square и Highrise. Однако, фреймворк критикуют за ограниченную масштабируемость, особенно заметно в случае с Twitter, которому пришлось перенести большинство своих сервисов на другие платформы. Связанно это с тем, что Twitter обладает высоким потоком трафика и в следствии чего испытывает сложности с масштабируемостью.
В этом туториале я отвечу на вопрос «Что такое Ruby on Rails?» и познакомлю вас с основами программирования используя данный фреймворк, чтобы помочь вам начать экспериментировать на нём.
Прежде чем начать, пожалуйста помните, что я принимаю участие в общении в комментариях ниже. Если у вас возник вопрос или тема, которую вы хотели бы предложить, не стесняйтесь написать комментарий или можете связаться со мной на Twitter @reifman.
Что такое Ruby on Rails?
Ruby on Rails популярный, объектно-ориентированный, фреймворк для веб-разработки, с отрытым исходным кодом используемый множеством программистов для создания приложений. Также он основан на принципах модель-представление-контроллер (model view controller MVC).
Оптимизация для приятного программирования с соглашениями вместо конфигурации, так мы работаем.
Контроллер обрабатывает запросы в основном от сервера к пользователю, забирая данные из модели и возвращая их пользователю посредством файлов отвечающих за представление.
Представление по сути своей является программируемыми HTML файлами, которые отображают страницу используя динамичные данные.
Rails соглашение призывает разработчиков следовать принципам RESTful роутинга. Экшены контроллера как правило new, create, update, destroy, show, index и так далее. Позволяет пользователям и системе взаимодействовать с различным функционалом.
В соответствии, функции MVC Rails, называют Action Pack, то есть ActionController, ActionView и ActiveRecord предназначенные для взаимодействия с базой данных.
Создатель Rails, Hanson составил набор принципов на которых основывается фреймворк, под названием доктрина Ruby on Rails.
Доктрина Ruby on Rails
Доктрина Rails состоит из восьми постулатов:
Главным достижением Rails было объединение и взращивание сильного племени, также как и набор еретических мыслей о природе программирования и программистах. — David Heinemeier Hansson
Ниже основные участники внёсшие значительный вклад в Rails (основатель Hansson в верхнем левом углу):
И они являются представителями уютного, приветливого сообщества:
Вероятно вы хотите узнать больше, вот как вам стоит начать.
Начинаем изучение Ruby on Rails
Rails обладает набором потрясающей документации. Вот как выглядит глава с введением:
Этот туториал познакомит вас с общими сведениями, процессом установки и первыми шагами программирования с Rails фреймворком.
Устанавливаем Ruby on Rails
На Mac Ruby уже установлен. Пользователям Windows стоит ознакомиться с RailsInstaller. Для полноценной установки Rails на OS X, туториал рекомендует Tokaido. В качестве альтернативы, Daniel Kehoe предлагает избегать установщиков в один клик и предоставляет детальную инструкцию по установки для Mac OS X El Captain.
Опытные Rails разработчики также сообщают, что это делает разработку веб-приложений более интересной. — Rails туториал
Однако, я давно не запускал Rails, и повторная установка на моей последней модели Mac с El Captain оказалось довольно времязатратным занятием.
Проверяем установленный Ruby
На OS X, Ruby уже установлен:
Устанавливаем фреймворк Rails
Создание вашего приложения и экземпляра фреймворка
Затем я создал новое приложение под названием blog:
Вам стоит исследовать директорию веб-фреймворка Rails, чтобы ознакомиться со структурой приложения:
Вот изображение из вводной главы туториала, показывающие как Rails полагается на принципы соглашений вместо конфигураций:
Запускаем сервер
Наконец, вы можете запустить сервер с помощью командной строки:
Открываем наше приложение
В браузере перейдите по адресу http://localhost:3000 и вы должны увидеть стандартную главную страницу Rails приложения:
Должен признаться, хотелось бы, чтобы это было немного понятнее. Тем не менее, существуют отличные источники информации созданные участниками сообщества, призванные вам помочь.
Погружаемся глубже
Вот пример бесплатного GoRails скринкаста, освящающий основные моменты архитектуры приложения, директорию, которую мы упоминали ранее:
И Rails Guide ознакомит вас, шаг за шагом, с вопросами для новичков:
Помимо прочего, вы можете найти разнообразные текстовые туториалы и скринкасты, которые помогут вам разобраться.
В заключение
Если вас заинтриговало качество фреймворка Ruby on Rails и вовлечённое сообщество, надеюсь вы находите это вступление хорошей стартовой точкой. Возможно вы даже прошли процессы установки выше.
Я с радостью вспоминаю то время когда я работал с Rails, но также я испытывал некоторые турдности, особенно касательно хостинга и расширения базового функционала — хостинг для Rails приложений более дорогой. Мне нравится Yii, вы можете прочитать статью об этом Envato Tuts+ Yii2 Programming Series. И с появлением PHP 7, будущее PHP фреймворков кажется быстрым и ярким.
Если у вас есть вопросы, пожалуйста напишите их ниже. Или свяжитесь со мной на Twitter @reifman. Пожалуйста ознакомьтесь с моей страницей инструктора на Envato Tuts+, где вы найдёте другие туториалы, написанные мной, к примеру использование социальных сетей, чтобы найти свидетеля, посвященный API Instagram и Twitter.
Ruby on Rails шаг за шагом. #1 Теория
Ненадолго отставив серию статей о ЯП Ruby в сторону (1, 2, 3, 4, 5, 6, 7, 8, 9, 10), решил презентовать вам новый цикл о фрэймворке Rails. Набравшись некоторого опыта в «обучении» попробую вывести эту серию на уровень качества и продуманности несколько выше, чем прежде.
Целью первой части уроков по Ruby on Rails будет создание некоторого многопользовательского блога (аля Хабр). Также хочется отметить, что для этой первой части желательно иметь познание о Руби хотя бы на уровне трех-четырех капель. Хочется поскорей приступить к кодингу, но начинать все равно придется с теории.
RoR – базирующийся на Руби фрэймворк
ЯП Руби – простой и мощный, возможность мета-программинга, блоков, итераторов, а также обработки исключений делает язык замечательной основой для фрэймворка. Собственно так и посчитал Дэвид Хэйнемеер Ханссон, создатель RoR, и в июле 2004 года фрэймворк вышел на свет.
Увидеть, как помогает мета-программирование Руби, можно увидеть в ORM компоненте RoR Active Record. Основываясь на имени класса, RoR считывает схему (schema) и налету создает объекты класса на базе таблицы БД. Можно перейти к следующему аспекту.
RoR реализует MVC
Active Record
Action View
Action Controller
Три среды
Эпилог
Да, да, и тут эпилог — без него никуда 😉 Сегодня мы с вами узнали о том, что такое MVC, как его реализуют Rails, узнали роль компонентов фрэймворка, узнали, как они сообщаются между собой. Взглянули даже на разные среды, которые предоставляют нам Rails. Если все понятненько, то можно начинать обустраивать рабочее место! Комментарии страстно желаемы 😉
PS: Этот номер написан по мотивам книги Building Dynamic Web 2.0 Websites with Ruby on Rails. Однако с литературой по Rails стоит быть максимально осторожным, поскольку фрэймворк развивается неуловимыми темпами, и почти все книги (даже 2008 г. выпуска, в том числе и эта) основана на старых версиях Rails (1.2.x)
Что Такое Ruby on Rails и Стоит Ли Его Изучать?
С точки зрения сегодняшнего выбора возможностей для разработки приложений, Ruby по-прежнему является, пожалуй, самым изящным языком программирования.
По словам его создателя Юкихиро Мацумото, его главная цель- сделать веб-разработчиков счастливыми. Интуитивность, широкие возможности синтаксиса, прозрачность кода-вот лишь некоторые из наиболее очевидных преимуществ этой технологии.
Хотя он был запущен в 2004 году, можно с уверенностью сказать, что это уже зрелое и самодостаточное решение. Однако при постоянном появлении новых современных решений и стремлении к постоянному повышению эффективности веб-приложений, есть ли еще свободное место для технологий?
Подобный вопрос часто возникает у молодых специалистов, изучающих программирование, а для самих представителей Ruby он стал своего рода мемом. Трудно скрыть, что в эпоху Python, React и быстро меняющихся архитектур Ruby on Rails стремится оставаться конкурентоспособным инструментом. Тем не менее, до сих пор многие новые разработчики используют его, чтобы начать свой путь в мире IT, и, как и их предшественники, они вступают в сообщество преданных поклонников этого языка программирования.
Чтотакое Ruby on Rails?
Юкихиро Мацумото начал работать над Ruby в начале 90-х. Уже в первых версиях появились отличительные черты, сохранившиеся в языке до наших дней:
Кроме того, еще с того времени стали использоваться основные принципы функционирования Ruby, которые до сих пор действуют и используются даже в последнем выпуске Ruby 2.7.2. Основными принципами разработки в Rails являются:
• DRY (Не повторяйте): фреймворк предоставляет механизмы для повторного использования программного кода. Это позволяет не только минимизировать дублирование кода, но и увеличить скорость записи.
• COC (Соглашение по конфигурации): это означает, что явная спецификация конфигурации необходима только в тех случаях, когда проблема выходит за рамки спецификации.
• Автоматизированное Тестирование. RoR включает в себя инструменты для полностью автоматизированного модульного, интеграционного и функционального тестирования. Философия RoR предполагает использование методов Test-DrivenDevelopment (Принцип TDD).
Все эти правила были преобразованы в общий принцип наименьшего удивления, согласно которому программа должна вести себя именно так, как программист мог ожидать.
Каковы преимущества RoR?
Ruby- это язык программирования общего назначения. Вы можете использовать его для решения различных задач во многих сферах. Вы можете развернуть крупномасштабное резервное копирование для своих проектов. Кроме того, подумайте об использовании его для небольших задач, таких как настройка Ruby в Gmail, для отправки и чтения электронных писем. Однако у Ruby есть несколько ниш, в которых он используется чаще всего.
Прежде всего, RoR может помочь вам разработать MVP для стартапа, когда скорость создания и упрощенная безопасная структура имеет первостепенной значение. Это означает, что Rails поможет в создании первоначальных прототипов и их последующем тестировании с целью получения более функционального продукта на их основе в будущем.
Например, это помогло сервису Airbnb, который занимается арендой жилья, или игровой площадке с видео по запросу Hulu на старте справиться с техническими сложностями и в дальнейшем достичь невероятного успеха.
Более того, его способность довольно быстро и правильно отображать контент в среде с большим трафиком была в свое время проверена Netflix и социальной сетью для любителей книг Goodreads. Кроме того, возможности резервного копирования на стороне сервера RoRпришли на помощь депозитарию Github и многим новостным сайтам, таким как Bloomberg.
Но похоже, что большая часть из 1,532,730 активных сайтов на основе RoR представляет собой платформы электронной коммерции и их API. Здесь стоит упомянуть таких мастодонтов продаж, как Groupon и Shopify, которые вы и так прекрасно знаете.
Что касается других статистических доказательств популярности Ruby on Rails, названным “Языком программирования года” в 2006 году, Ruby по-прежнему входит в число лучших в своем калибре согласно Индексу TIOBE. А частота запросов в сети за последний год выросла на 0,24%.
Обращая внимание не только на то, для чего используется Ruby, но и говоря о тех, кто составляет его активное сообщество, следует сказать, что сейчас в репозитории GitHub насчитывается 4160 участников.
Преимущества RoR для начинающих
Низкий порог входа
Ruby-один из самых простых языков программирования. Чтение написанного кода мало чем отличается от чтения инструкций на английском.
Здесь нет определений типов, синтаксис намного проще по сравнению с такими языками, как Java или C++, и он требует минимального объема кода, который необходимо написать.
Это делает технологию отличным выбором для начинающих разработчиков. Чтобы начать погружаться в RoR, вы можете просто выбрать бесплатный курс на одной из популярных онлайн-платформ с курсами.
Гибкость
Ruby делает все возможное, чтобы не ограничивать разработчика. Это один из самых гибких языков, позволяющий своим пользователям вносить большие изменения. Вы можете убрать различные элементы из языка или переопределить их, если это необходимо. Точно так же отдельные части программы или приложения могут быть свободно изменены и расширены в будущем.
Если вам чего-то в нем не хватает, то для этого есть отдельные разработки: от тестирования приложений Rails до реализации отслеживания QR-кода. Какую бы задачу вы ни выбрали для своего первого проекта на Rails, вы сможете быстро реализовать работающий прототип.
Он поможет понять базовые принципы программирования
У RoR есть отлично написанные официальные руководства, специально созданные сайты, подкасты и бесплатные курсы, которые могут провести вас через основные компоненты фреймворка.
Разобравшись с ним, вы получите базовые знания о структуре веб-фреймворков: как работает маршрутизация, как работать с веб, зачем фреймворку нужна база данных и как поменять ее устройство, как использовать шаблоны, как интернационализировать и локализовать приложения.
А создание первоначального прототипа уже станет важным шагом на пути к дальнейшему построению вашего бренда. Придет понимание прикладных задач и способов их реализации с использованием других методик. Если вам нужно будет поменять структуру, вы сможете использовать полученные знания работы с этим языком программирования.
Кроме того, базовая документация предоставит вам знания в смежных областях веб-разработки: тестирование, отладка и безопасность. Узнайте, как правильно и безопасно настраивать приложения, отправлять и получать почту, загружать и хранить файлы в облачном хранилище.
Кроме того, базовая документация предоставит вам знания в смежных областях веб-разработки: тестирование, отладка и безопасность. Узнайте, как правильно и безопасно настраивать приложения, отправлять и получать почту, загружать и хранить файлы в облачном хранилище.
Заключение
Даже в 2021 году Ruby является отличным выбором для нужд разработчиков. Это, без сомнения, абсолютно применимый язык, который все еще привлекает многих последователей и разработчиков.
Наконец, плохих языков вообще не бывает, просто в некоторых случаях вы можете выбрать неправильный язык. В любом случае, Ruby минимизирует проблему выбора, так как он очень гибкий и простой в использовании. Время, потраченное на обучение, конечно же, не будет потрачено впустую на приобретение общих навыков бэкенд-программирования.
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ
Что такое Ruby on Rails?
Фреймворк веб-приложений, который охватывает все моменты, необходимые для создания веб-приложений с поддержкой баз данных в соответствии с MVC (Model-View-Controller).
Ruby on Rails/Введение
Содержание
Знакомство с Rails [ править ]
Что входит в Rails? [ править ]
Rails — это полноценный, многоуровневый фреймворк для построения веб-приложений, использующих базы данных, который основан на архитектуре Модель-Представление-Контроллер (Model-View-Controller, MVC). Динамичный AJAX-интерфейс, обработка запросов и выдача данных в контроллерах, предметная область, отраженная в базе данных, — для всего этого Rails предоставляет однородную среду разработки на Ruby. Все, что необходимо для начала — база данных и веб-сервер.
Кто пользуется Rails? [ править ]
Rails используют все — от стартапов и некоммерческих организаций до крупного бизнеса. Rails — это прежде всего инфраструктура, поэтому среда великолепно подходит для любого типа веб-приложений, будь это программы для организации совместной работы, поддержки сообществ, электронного бизнеса, управления содержанием, статистики, управления… Список можете продолжить сами.
Что еще нужно? [ править ]
Rails отлично работает со многими веб-серверами и СУБД. В качестве веб-сервера рекомендуется использовать Apache или nginx с модулем Phusion Passenger. Rails также можно разворачивать используя Unicorn, Thin, Mongrel или FastCGI. В качестве СУБД можно использовать MySQL, PostgreSQL, SQLite, Oracle, SQL Server, DB2 или Firebird. Использовать Rails можно на практически любой операционной системе, однако для развертывания мы рекомендуем системы семейства *nix.
Начало работы [ править ]
Инструменты [ править ]
Наверно существует столько вариантов разработки Rails приложений, сколько и Rails программистов. Но все они сводятся к двум вариантам: текстовый редактор/командная строка и интегрированная среда разработки (IDE).
Интегрированная среда разработки [ править ]
Дефицита в Rails IDE нет. Основные это: RadRails, RubyMine, 3rd Rail и NetBeans. Все кросс-платформенные, и некоторые из них очень хорошие, но в этом учебнике мы будем использовать связку текстовый редактор/командная строка.
Текстовые редакторы и командная строка [ править ]
Что мы используем для разработки Rails приложений, если нет шикарной IDE? Большинство Rails разработчиков выбирают по следующим критериям: использовать текстовый редактор для редактирования текста, а командную строку для выполнения команд. Комбинация зависит от ваших предпочтений и платформы:
Linux: Ваш выбор редактора основывается на описанном выше для OS X, за исключением TextMate. Мы рекомендуем графический Vim (gVim), gedit (с плагином GMate) или Kate. Что касается командной строки: каждый дистрибутив Линукс имеет по крайней мере одно заявленное приложение терминала командной строки (часто несколько).
Браузеры [ править ]
Хотя существует множество веб-браузеров, подавляющее большинство Rails разрабочиков используют Firefox, Safari или Chrome. Скриншоты в этом учебнике, как правило, будут в браузере Chrome. Если вы используете Firefox, предлагаем использовать Firebug, он позволяет динамическую проверку (и даже редактирование) структуры HTML и CSS правил на любой странице. Для тех, кто не использует Firefox, Firebug Lite работает с большинством других браузеров, таких как Safari и Chrome, и имеет встроенную «Проверку элемента». Независимо от того, какой браузер вы используете, опыт показывает, что время, потраченное на обучения подобным инструментам будет щедро вознаграждено.
По поводу инструментов [ править ]
В процессе приобщения ваше рабочее окружение будет установлено и запущено, вы возможно найдете что тратить много времени на приобщение ко всему будет правильно. Процесс обучения текстовым редакторам и IDE особенно долог; вы можете потратить неделю только на чтение руководства TextMate или Vim. Если Вы плохо знакомы с этим делом, я хочу уверить Вас, что расход времени на изучение инструментов нормален. Все проходят это. Иногда это печально и вызывает легкое беспокойство, когда у вас в голове уже есть веб-приложение и вы хотите только изучить Rails, но тратите неделю изучая некоторый таинственный древний редактор Unix только чтобы начать. Но мастер должен знать свои инструменты — в конце награда окупит усилия.
Ruby, RubyGems, Rails, and Git [ править ]
Классический способ установки из исходных текстов со страницы загрузки Ruby on Rails. Я предположу, что Вы можете перейти туда теперь; часть этой книги могут быть прочитаны с пользой без Сети, но не эта часть. Я только вставлю некоторые собственные комментарии к процедуре установки.
Установка Git [ править ]
Многое в экосистеме Rails зависит так или иначе от системы контроля версий называемой Git (описана в деталях в Разделе 1.3). Поскольку она повсеместно используется вы должны установить Git на этой ранней стадии; я предлагаю следовать инструкциям по установке Git для вашей системы в разделе Installing Git из Pro Git.
Установка Ruby [ править ]
Следующий шаг — установка Ruby. Возможно что он уже стоит в вашей системе, попробуем запустить:
Видим номер версии. Rails 3 требует Ruby 1.8.7 и выше, и отлично работает с Ruby 1.9.2. Этот учебник предполагает, что вы используете последную версию Ruby 1.9.2, известную как Ruby 1.9.2-head, но и с Ruby 1.8.7 должно быть всё хорошо.
Ветка Ruby 1.9 находится в интенсивной разработке, поэтому, к сожалению установка последней версии может быть нетривиальной задачей. Вам придётся полагаться на самые современные инструкции. Ниже приводится ряд шагов, после которых я привёл всё в рабочее состояние на моей системе (Macintosh OS X), но вам, возможно, придётся повозиться.
Как часть процедуры установки Ruby, если вы используете OS X или Linux, я настоятельно рекомендую устанавливать Ruby используя Ruby Version Manager (RVM), который позволяет устанавливать и управлять различными версиями Ruby на одной машине. (Проект Pik позволяет подобное при использовании Windows.) Это особенно важно, если вы хотите запускать Rails 3 и Rails 2.3 на одной машине. Если вы решили пойти этим путем, я рекомендую использовать RVM для установки двух комбинаций Ruby/Rails: Ruby 1.8.7/Rails 2.3.8 и Ruby 1.9.2/Rails 3.1.0. Если Вы сталкнётесь с какими-нибудь проблемами при использовании RVM, вы всегда можете найти его автора, Wayne Seguin, на канале IRC RVM (#rvm on freenode.net).8
После установки RVM Вы можете установить Руби следующим образом:
Затем сделайте gemset для Rails 3, который позволит нам управлять отдельными пакетами gems если мы хотим (например) запускать Rails 2.3 на одной системе:
Вы можете сделать эту версию и gemset версией по умолчанию следующим образом:
Установка RubyGems [ править ]
RubyGems — это пакетный менеджер Ruby projects, и существуют тонны больших библиотек (включая Rails), доступных через пакеты Ruby или gems. Установка RubyGems должна быть лёгкой, так как Вы установили Ruby. Фактически, если Вы установили RVM, у Вас уже есть RubyGems, так как RVM включает его автоматически:
Если у Вас ещё нет этого, Вы должны загрузить RubyGems, распаковать его, и затем пойти в каталог rubygems и запустить программу установки:
Здесь sudo выполняет команду ruby setup.rb как администратор, который имеет доступ к файлам и каталогам, не доступным обычным пользователям; я поместил команду в скобках, чтобы указать, что использование sudo возможно не требуется для Вашей конкретной системы. Большинство Unix/Linux/OS X систем требуют sudo по умолчанию, если Вы не используете RVM как предложено в Разделе 1.2.2.2. Заметьте, что Вы не должны фактически печатать скобки; Вы должны запустить также
в зависимости от вашей системы.
Если вы уже установили RubyGems ранее, то возможно вы захотите обновить вашу систему на последную версию:
Установка Rails [ править ]
Установка Rails 3.0 может быть мудрёна, так как еще нет релиза и появляется много изменений. Вот команды, которые работали у меня:
Флаг «-pre» гарантирует, что вы получите пре-релиз версию Rails, которая на момент написания статьи стала релиз-кандидатом (rc)
Чтобы убедиться, в работе, запустите следующую команду:
Первое приложение [ править ]
Файл/Директория | Описание |
app/ | Основные приложения (app) кода, включая модели, представления, контроллеры и помощники |
config/ | Конфигурация приложения |
db/ | Файлы для управления базой данных: схема базы данных и миграции |
doc/ | Документация приложения |
lib/ | Модули библиотек |
log/ | log файлы приложения |
public/ | Общедоступные файлы (например для веб-браузера)- изображения и каскадные таблицы стилей (CSS) и т.д. |
script/rails/ | Скрипт Rails для генерации кода, открытия консоли сессий, или запуск локального веб-сервера |
test/ | Юнит-тесты и прочий аппарат тестирования |
tmp/ | Временные файлы |
vendor/ | Сторонний код, например плагины и гемы |
README/ | Краткое описание приложения |
Rakefile | Утилиты задач, доступных через команду rake |
Gemfile | Gem требования для приложения |
config.ru | Файл конфигурации для Rack middleware |
.gitignore | Шаблоны для файлов, которые должны быть проигнорированы Git |
Bundler [ править ]
После создания нового приложения Rails, следующий шаг заключается в использовании Bundler для установки и включения gems необходимых для приложения. Для этого откройте Gemfile с вашего любимого текстового редактора:
Должно выйти что-то похожее:
Большинство из этих строк закомментированы с хэш-символа #; они здесь, чтобы показать вам некоторые наиболее часто используемых gems и привести примеры синтаксиса Bundler. Сейчас нам не потребуется каких-либо других gems, кроме тех, что по умолчанию: Rails, и gems для Ruby интерфейса базы данных SQLite.
Если вы укажете номер версии для gem команды, Bundler автоматически установит последнюю версию. К сожалению, gem обновления может привести к путанице и поломке, так что в этом уроке мы обычно включаем номер рабочей версии. Например, последняя версия sqlite3-ruby gem не будет установлен на OS X Leopard, в то время как предыдущая версия работает отлично. Просто для безопасности сделайте следующие исключения:
Что заставит Bundler установить версию 1.2.5 от sqlite3-ruby gem. (Также мы удалили ненужные строки комментариев). Обратите внимание что если версия 1.2.5 от sqlite3-ruby gem у вас не работает, попробуйте версию 1.3.1.
Если вы работаете в Ubuntu Linux, вам может потребоваться установить несколько других пакетов на данный момент:
Как только вы собрали надлежащий Gemfile, установите gems используя Bundle
Это может занять несколько минут, но когда это будет сделано наше приложение будет готово к запуску.
rails server [ править ]
Благодаря запуску новых rails и установке bundle, у нас уже есть приложение, которое можно запустить, но как? К счастью, Rails поставляется с программной командной строкой или скриптом, который запускает локальный веб-сервер, видимый только на вашем компьютере.
Это говорит о том, что приложение работает на порту номер 3000 по адресу 0.0.0.0. Это специальный адрес означает, что с любого компьютера в локальной сети можно просматривать наше приложения, в частности, машина запускает сервер разработки, то есть локальную машину разработки — можете просматривать приложения, используя адрес localhost:3000. Мы можем увидеть результат посетив http://localhost:3000/
Чтобы просмотреть информацию о вашем приложении, нажмите на ссылку «About your application’s environment»
Конечно, нам не нужны страницы по умолчанию Rails в долгосрочной перспективе, но приятно видеть, что он работает. Мы удалим страницу по умолчанию (и заменим его на вашу домашнюю страницу) в последующем.
Модель-Представление-Контроллер (MVC) [ править ]
На ранней стадии, полезно получить общие знания о работе Rails приложений. Вы уже заметили, что по умолчанию структура Rails приложения имеет app/ каталог с тремя подкатегориями: models, views, и controllers. Это намек на то, что Rails следует шаблону модель-представление-контроллер (MVC), который разделяет «domain logic» (или «business logic») от входной и представленной логикой, связанной с графическим пользовательским интерфейсом (GUI). В случае веб-приложений «domain logic» обычно состоит из data models для пользователей, статей, и продуктов, и GUI это только веб-страница в браузере.
При взаимодействии с приложением Rails, браузер посылает запрос, который получает веб-сервер и передаёт на Rails контроллер, который отвечает за то, что делать дальше. В некоторых случаях контроллер будет сразу генерировать шаблон, который конвертируется в HTML и отправляется обратно браузеру. Чаще всего для динамических сайтов, контроллер взаимодействует с моделью, которая является объектом Ruby. Ruby в свою очередь представляет элемент сайта (например, пользователя) и отвечает за связь с базой данных. После вызова модели, контроллер генерирует шаблон и возвращает полную веб-страницу в браузер как HTML.
Если это кажется немного абстрактным для вас, не беспокойтесь, мы будем часто возвращаться к этому разделу. Кроме того в будущем вы получите более подробное представление о MVC в контексте демо приложения. Наконец на последующих стадиях мы будем использовать все аспекты MVC.
Управление версиями с помощью Git [ править ]
Теперь у нас есть рабочее Rails приложение и следующим шагом мы поместим исходный код нашего приложения под систему управления версиями. С помощью системы управления версиями вы сможете следить за изменениями в коде вашего проекта, легко сотрудничать с другими разработчиками, и откатить любые ошибки. Использование контроля версий является необходимым навыком для любого разработчика программного обеспечения.
Есть много вариантов для управления версиями, но Rails сообщество в значительной степени ориентировано на Git, систему управления версиями разработанной Линусом Торвальдсом для размещения ядра Linux.
Установка и настройка [ править ]
После установки Git, необходимо выполнить множество дополнительных шагов. Это системная установка, которая означает что вам необходимо сделать это на своем компьютере всего один раз:
Также используем более подробную команду проверки:
Последним этапом установки можно дополнительно задать текстовый редактор, который Git будет использовать для комментирования сообщений. При использовании графического редактора, например TextMate, gVim, или MacVim, вам необходимо убедиться в том что редактор прикреплен правильно:
Установка первого репозитория [ править ]
Теперь мы подошли к тому, что вам необходимо проделывать каждый раз, как вы создаете новый репозиторий (в этой книге это случается всего один раз, но может быть вам понадобится это в будущем) Сперва перейдите в корневую директорию первого приложения и инициализируйте новый репозиторий:
Следующим шагом является добавление файлов проекта в хранилище. Здесь есть несколько затруднений, например: по умолчанию Git записывает все изменения файлов, но есть некоторые файлы, которые мы не хотим отслеживать. Например, Rails создает файлы журнала для записи поведения приложения; эти файлы часто меняются, и нам не нужно, чтобы наша система управления версиями обновляла их постоянно. Git имеет простой механизм, чтобы игнорировать такие файлы: просто включите файл .gitignore в корневой каталог Rails с некоторыми правилами для Git — какие файлы нужно игнорировать.
Rails по умолчанию создает в корневой директорию .gitignore файл следующего содержания:
В этом листинге прописаны файлы которые Git будет игнорировать, это — log файлы, временные Rails (tmp) файлы и SQLite база данных. Большинство из этих файлов часто автоматически изменяются, поэтому их неудобно включать в систему управления версиями.
Данных игнорируемых файлов в .gitignore файле вполне достаточно для этого учебника, но в зависимости от вашей системы вы можете использовать следующий листинг. Он также игнорирует файлы документации Rails, Vim и Emacs файлы подкачки, и (для OS X пользователей) .DS_Store каталоги созданные mac Finder приложением. Если вы хотите использовать этот листинг, то просто откройте .gitignore файл в вашем любимом текстовом редакторе и заполните его следующим содержанием:
Добавление и фиксирование [ править ]
Наконец, мы добавим файлы в новый проект Rails на Git а затем зафиксируем результат. Вы можете добавить все файлы (кроме тех, которые соответствуют шаблонам игнорирования в gitignore.) Следующим образом:
Здесь точка ‘.’ представляется текущим каталогом, и Git достаточно умен, чтобы добавлять файлы рекурсивно, поэтому он автоматически включает все подкаталоги. Эта команда добавляет файлы проекта на промежуточный уровень, в котором они содержатся до изменения в вашем проекте, вы можете увидеть, какие файлы находятся на промежуточном уровне используя команду:
Результат на самом деле длинный, и здесь вертикальные точки это пропущенные строки.
Чтобы сообщить Git, что вы хотите сохранить изменения, используете следующую фиксирующую команду:
Где -m позволяет добавить комментарий для фиксирования, если вы опустите -m, то Git откроет редактор, который вы указали в качестве стандартного и даст вам ввести там комментарий.
Важно запомнить что Git фиксация локальна, записывается только на ваш компьютер. Это в отличие от другой системы управления, под названием Subversion, в которой обязательно вносятся изменения на удаленном хранилище. Git в отличие от стиля Subversion, делает это двумя логическими частями: локальная запись изменений (git commit), и отправка изменения на удаленное хранилище (git push). В дальнейшем мы увидим пример отправки.
Тем временем вы можете увидеть ваши зафиксированные записи используя log команду:
Для того, чтобы выйти из Git журнала нажмите q.
Так чем, все-таки, так хорош Git? [ править ]
Это наверно не совсем ясно, почему, включив в ваш проект систему управления версиями, вы получите выгоду. Так что давайте рассмотрим один пример. Предположим, вы сделали несколько случайных изменений, таких как (Ох!) удаление важного app/controllers/ каталога:
Посмотрим, что получилось:
Удаленные файлы и папки восстановлены!
GitHub [ править ]
Теперь, когда мы включили наш проект в систему контроля версиями Git, пришло время отправить ваш код до GitHub, специальный ресурс для кода, оптимизированный для размещения и обмена Git репозиториями. Копируя ваш репозиторий на GitHub мы преследуем две цели: полное резервное копирование кода (включая полную историю фиксаций), и упор на последующее более легкое сотрудничество. Этот шаг не является обязательным, но будучи членом GitHub вам открыты двери к участию разнообразных Ruby and Rails проектов. (GitHub очень хорошо принимает Ruby and Rails, в самом деле он написан на нём).
GitHub имеет целый список платных услуг, но на открытый исходный код их услуги бесплатны, поэтому создайте бесплатный GitHub аккаунт если у вас его еще нет. (Для начала прочитайте о SSH ключах) После регистрации щелкните по созданию хранилища и заполните его информацией. После заполнения формы, загрузите ваше первое приложение следующим образом:
Эти команды значат, что вы добавляете GitHub как зеркало для основного филиала, а затем загружаете ваше хранилище на GitHub. Просто замените на ваше имя пользователя. Например:
Результат должен незамедлительно отобразиться на вашей странице в GitHub.
Отделение, редактирование, фиксация, слияние [ править ]
Отделение [ править ]
Вы наверно заметили, что GitHub показывает содержимое файла README на главной странице хранилища. В нашем случае проект создан с помощью команды Rails, и поэтому файл README создался автоматически. Это не очень информативно, и поэтому мы первым делом изменим README, описав в нем наш проект. В процессе мы будем использовать такие функции как отделение, редактирование, фиксация, слияние.
Полную цену ветвления вы узнаете когда мы будем работать над проектом с несколькими разработчиками, но ветви полезны даже для одного разработчика. В частности, главная ветвь изолирована от любых изменений, которые мы делаем с ветвью темы, так что даже если мы сделаем что то не так, мы всегда сможем отказаться от изменений, проверив главную ветвь и удалив ветвь темы. Мы сделаем это в конце раздела.
Кстати, для таких малых изменений я обычно не вожусь с новой ветвью, но никогда не рано практиковать хорошие привычки.
Редактирование [ править ]
После создания ветви темы, мы отредактируем его, чтобы сделать немного более подробным. Мне нравиться использовать язык разметки Markdown для этой цели, и если вы используете расширение файла .markdown, то GitHub автоматически отформатирует его для вас. Итак для начала мы используем Git версию Unix команды mv («move») для изменении имени:
,а затем заполним его следующим содержанием:
# Ruby on Rails Tutorial: first application This is the first application for [*Ruby on Rails Tutorial*]
Фиксирование [ править ]
В связи с изменениями, мы можем взглянуть на состояние нашей ветви:
Слияние [ править ]
Теперь, когда мы закончили делать наши изменения, мы готовы объединить результаты обратно в нашей главной ветви:
Заметим, что Git вывод включает часто в себя такие вещи как 34f06b7, которые связаны с внутренним представлении о Git репозитории. Ваши результаты будут отличаться в подробностях, но в целом должны соответствовать примеру выше.
Этот шаг является необязательным, и на самом деле довольно часто можно оставить topic branch нетронутым. Таким образом вы сможете переключаться между topic и master branches до тех пор пока вам это нужно.
Push [ править ]
Теперь, когда мы обновили файл README, мы можем загрузить изменения на GitHub, чтобы увидеть результат:
Как и было обещано, GitHub красиво оформил формат нового файла используя Markdown.
Развертывание [ править ]
Даже на этой ранней стадии мы собираемся развернуть наше (по прежнему пустое) Rails приложение к производству. Этот шаг является необязательным, но раннее развертывание часто позволяет уловить любые проблемы на этапе разработки. Альтернатива — развертывание только после трудоемких усилий запечатанное далеко в среде разработки, часто приводит к страшной головной боли интеграции, когда наступает время обеда.
Средства развертывания Ruby кода появились в течение нескольких прошедших лет, и сейчас для этого есть несколько замечательных функций. Они включают приложения для хостов или виртуальных частных серверов Phusion Passenger (модуль для Apache и Nginx), полный комплекс услуг развертывания таких компаний, как Engine Yard и Rails Machine, и облако развертывания услуг, таких как Engine Yard Cloud и Heroku.
Мой любимый способ развертывания Rails — опция Heroku, платформа, построенная специально для развертывания Rails и других веб Ruby applications. Heroku делает развертывание Rails приложений до смешного простым, используя для получения исходного кода систему управления версиями Git. (Это еще одна причина для последующей установки Git шаги в разделе 1.3, если вы еще не сделали этого.) Оставшаяся часть этого раздела посвящена развертыванию нашего первого приложения для Heroku.
Установка Heroku [ править ]
После регистрации на Heroku, установите Heroku gem:
Как и с GitHub, при использовании Heroku вам необходимо создать SSH ключи, если вы до сих пор это не сделали, и затем указать Heroku ваш public key, чтобы вы смогли использовать Git для загрузки ваших приложений на их сервера:
Наконец, используем команду Heroku для того чтобы создать место на серверах Heroku, чтобы наше приложение ожило:
Да, и это все. Heroku команда создает новый поддомен только для нашего приложения доступный для немедленного просмотра. Там пока что ничего нет, так что давайте займемся развертыванием.
Развертывание. Шаг первый. [ править ]
Для развертывания на Heroku, первый шаг заключается в использовании Git для загрузки приложении на Heroku:
Развертывание. Шаг второй. [ править ]
Нет никакого второго шага! Мы уже все сделали! Чтобы увидеть готовое приложение, вы можете посетить адрес который вы видели когда вы запускали heroku create. Вы также можете использовать команду Heroku, которая автоматически сделает это:
После того как вы успешно запустили ваше приложение, heroku обеспечивает красивый интерфейс для администрирования и настройки приложения.
Команды Heroku [ править ]
Есть целая куча команд Heroku, и мы едва будем использовать их все в нашем учебнике. Давайте используем одну из них чтобы переименовать приложение:
Заключение [ править ]
Мы прошли долгий путь в этой главе: монтаж, установка среды разработки, управления версиями и развертывание.
Все, что осталось, это, знаете, на самом деле начать обучение Rails. Давайте начнем!