Ruby on Rails учебник
Начало работы с Ruby on Rails
Поиск…
замечания
Ruby on Rails (RoR) или Rails - это популярная платформа веб-приложений с открытым исходным кодом. Rails использует Ruby, HTML, CSS и JavaScript для создания веб-приложения, работающего на веб-сервере. Rails использует шаблон model-view-controller (MVC) и обеспечивает полный набор библиотек из базы данных вплоть до представления.
Версии
Версия | Дата выхода |
---|---|
5.1.2 | 2017-06-26 |
5.0 | 2016-06-30 |
4,2 | 2014-12-19 |
4,1 | 2014-04-08 |
4,0 | 2013-06-25 |
3,2 | 2012-01-20 |
3,1 | 2011-08-31 |
3.0 | 2010-08-29 |
2,3 | 2009-03-16 |
2,0 | 2007-12-07 |
1.2 | 2007-01-19 |
1,1 | 2006-03-28 |
1,0 | 2005-12-13 |
Создание приложения Ruby on Rails
В этом примере предполагается, что Ruby и Ruby on Rails уже установлены правильно. Если нет, вы можете найти, как это сделать здесь .
Откройте командную строку или терминал. Чтобы создать новое приложение rails, используйте новую команду rails, а затем имя вашего приложения:
$ rails new my_app
Если вы хотите создать приложение Rails с определенной версией Rails, вы можете указать его во время создания приложения. Для этого используйте rails _version_ new
а затем имя приложения:
$ rails _4.2.0_ new my_app
Это создаст приложение Rails под названием MyApp
в каталоге my_app
и установит зависимости gem, которые уже упоминаются в Gemfile
используя bundle install
.
Чтобы переключиться на каталог вновь созданного приложения, используйте команду cd
, которая обозначает change directory
.
$ cd my_app
В my_app
есть несколько автоматически сгенерированных файлов и папок, которые составляют структуру приложения Rails. Ниже приведен список файлов и папок, созданных по умолчанию:
Папка | Цель |
---|---|
приложение/ | Содержит контроллеры, модели, представления, помощники, почтовые программы и активы для вашего приложения. |
бен / | Содержит скрипт rails, который запускает ваше приложение и может содержать другие скрипты, которые вы используете для настройки, обновления, развертывания или запуска приложения. |
конфиг / | Настройте маршруты, базу данных и многое другое. |
config.ru | Конфигурация стойки для серверов на стойке, используемых для запуска приложения. |
дБ / | Содержит вашу текущую схему базы данных, а также миграцию базы данных. |
Gemfile Gemfile.lock | Эти файлы позволяют указать, какие зависимости от gem необходимы для вашего приложения Rails. Эти файлы используются жемчужиной Bundler. |
Библиотека / | Расширенные модули для вашего приложения. |
журнал/ | Файлы журналов приложений. |
общественности / | Единственная папка, которую видит мир как есть. Содержит статические файлы и скомпилированные активы. |
Rakefile | Этот файл находит и загружает задачи, которые могут выполняться из командной строки. Определения задач определяются во всех компонентах Rails. |
README.md | Это краткое руководство для вашего приложения. Вы должны отредактировать этот файл, чтобы сообщить другим, что делает ваше приложение, как его настроить и т. Д. |
тестовое задание/ | Единичные испытания, приборы и другие испытательные устройства. |
темп / | Временные файлы (например, файлы кеша и pid). |
продавец / | Место для всех сторонних кодов. В типичном приложении Rails это включает в себя драгоценные камни. |
Теперь вам нужно создать базу данных из файла database.yml
:
rake db:create
# OR
rails db:create
rake db:create
Теперь, когда мы создали базу данных, нам нужно запустить миграцию для настройки таблиц:
rake db:migrate
# OR
rails db:migrate
rake db:migrate
Чтобы запустить приложение, нам нужно запустить сервер:
$ rails server
# OR
$ rails s
По умолчанию рельсы запустит приложение на порту 3000. Чтобы запустить приложение с другим номером порта, нам нужно запустить сервер, например,
$ rails s -p 3010
Если вы перейдете в http: // localhost: 3000 в своем браузере, вы увидите страницу приветствия Rails, показывающую, что ваше приложение запущено.
Если он вызывает ошибку, может быть несколько возможных проблем:
- Существует проблема с
config/database.yml
- У вас есть зависимости в вашем
Gemfile
, которые не были установлены. - У вас есть ожидающие миграции. Run
rails db:migrate
- Если вы перейдете к предыдущим маршрутам переноса
rails db:rollback
Если это все еще вызывает ошибку, вы должны проверить свой config/database.yml
Создайте новое приложение Rails с выбором базы данных и включая инструмент проверки RSpec
Rails использует sqlite3
как базу данных по умолчанию, но вы можете создать новое приложение rails с базой данных по вашему выбору. Просто добавьте параметр -d
а затем имя базы данных.
$ rails new MyApp -T -d postgresql
Это (неисчерпывающий) список доступных параметров базы данных:
- MySQL
- оракул
- PostgreSQL
- sqlite3
- FrontBase
- IBM_DB
- SQLServer
- jdbcmysql
- jdbcsqlite3
- jdbcpostgresql
- JDBC
Команда -T указывает, чтобы пропустить установку minitest. Чтобы установить альтернативный набор тестов, например RSpec , отредактируйте Gemfile и добавьте
group :development, :test do
gem 'rspec-rails',
end
Затем запустите с консоли следующую команду:
rails generate rspec:install
Генерирование контроллера
Чтобы создать контроллер (например, « Posts
), перейдите в каталог проекта из командной строки или терминала и запустите:
$ rails generate controller Posts
Вы можете сократить этот код, заменив generate
на g
, например:
$ rails g controller Posts
Если вы откроете вновь созданное приложение / контроллеры / posts_controller.rb, вы увидите контроллер без каких-либо действий:
class PostsController < ApplicationController
# empty
end
Можно создать методы по умолчанию для контроллера, передав аргументы имени контроллера.
$ rails g controller ControllerName method1 method2
Чтобы создать контроллер внутри модуля, укажите имя контроллера как путь, например parent_module/controller_name
. Например:
$ rails generate controller CreditCards open debit credit close
# OR
$ rails g controller CreditCards open debit credit close
Это приведет к созданию следующих файлов:
Controller: app/controllers/credit_cards_controller.rb
Test: test/controllers/credit_cards_controller_test.rb
Views: app/views/credit_cards/debit.html.erb [...etc]
Helper: app/helpers/credit_cards_helper.rb
Контроллер - это просто класс, который определяется как наследуемый от ApplicationController
.
Внутри этого класса вы определяете методы, которые станут действиями для этого контроллера.
Создание ресурса с помощью лесов
От guide.rubyonrails.org:
Вместо создания модели напрямую. , , давайте создадим эшафот. Эстафот в Rails - это полный набор моделей, миграция базы данных для этой модели, контроллер для управления им, представления для просмотра и управления данными и набор тестов для каждого из вышеперечисленных.
Ниже приведен пример создания леса под названием Task
с именем строки и текстовым описанием:
rails generate scaffold Task name:string description:text
Это приведет к созданию следующих файлов:
Controller: app/controllers/tasks_controller.rb
Test: test/models/task_test.rb
test/controllers/tasks_controller_test.rb
Routes: resources :tasks added in routes.rb
Views: app/views/tasks
app/views/tasks/index.html.erb
app/views/tasks/edit.html.erb
app/views/tasks/show.html.erb
app/views/tasks/new.html.erb
app/views/tasks/_form.html.erb
Helper: app/helpers/tasks_helper.rb
JS: app/assets/javascripts/tasks.coffee
CSS: app/assets/stylesheets/tasks.scss
app/assets/stylesheets/scaffolds.scss
пример для удаления файлов, созданных эшафотом для ресурса под названием Task
rails destroy scaffold Task
Создайте новое приложение Rails с нестандартным адаптером базы данных
Rails поставляется по умолчанию с помощью ActiveRecord
, ORM (реляционное сопоставление объектов), полученного из шаблона с тем же именем .
Как ORM, он создан для обработки реляционного сопоставления, а точнее, для обработки запросов SQL для вас, отсюда ограничение только для баз данных SQL.
Однако вы все равно можете создать приложение Rails с другой системой управления базами данных:
- просто создайте приложение без активной записи
$ rails app new MyApp --skip-active-record
- добавить собственную систему управления базами данных в
Gemfile
gem 'mongoid', '~> 5.0'
-
bundle install
и выполнить шаги установки из нужной базы данных.
В этом примере mongoid
- это сопоставление объектов для MongoDB
и - как и многие другие камни базы данных, построенные для рельсов - он также наследует от ActiveModel
же, как и ActiveRecord
, который обеспечивает общий интерфейс для многих функций, таких как проверки, обратные вызовы, переводы и т. Д. ,
Другие адаптеры баз данных включают, но не ограничиваются:
DataMapper
сиквел рельсы
Создание Rails-интерфейсов в JSON
В этом примере предполагается, что у вас есть опыт создания приложений Rails.
Чтобы создать приложение только для API в Rails 5, запустите
rails new name-of-app --api
Добавить active_model_serializers в Gemfile
gem 'active_model_serializers'
установить комплект в терминале
bundle install
Установите ActiveModelSerializer
адаптер для использования :json_api
# config/initializers/active_model_serializer.rb
ActiveModelSerializers.config.adapter = :json_api
Mime::Type.register "application/json", :json, %w( text/x-json application/jsonrequest application/vnd.api+json )
Создайте новый эшафот для вашего ресурса
rails generate scaffold Task name:string description:text
Это приведет к созданию следующих файлов:
Контроллер: приложение / контроллеры / tasks_controller.rb
Test: test/models/task_test.rb
test/controllers/tasks_controller_test.rb
Routes: resources :tasks added in routes.rb
Migration: db/migrate/_create_tasks.rb
Model: app/models/task.rb
Serializer: app/serializers/task_serializer.rb
Controller: app/controllers/tasks_controller.rb
Установка Rails
Установка Rails на Ubuntu
На чистом ubuntu установка Rails должна быть прямой
Обновление пакетов Ubuntu
sudo apt-get update
sudo apt-get upgrade
Установка зависимостей Ruby и Rails
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev
Установка рубинового менеджера версий. В этом случае простой использует rbenv
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
Установка Ruby Build
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
Перезапустить оболочку
exec $SHELL
Установить рубин
rbenv install 2.3.1
rbenv global 2.3.1
rbenv rehash
Установка рельсов
gem install rails
Установка Rails в Windows
Шаг 1: Установка Ruby
Нам нужен язык программирования Ruby. Мы можем использовать предварительно скомпилированную версию Ruby с именем RubyInstaller.
- Загрузите и запустите Ruby Installer с rubyinstaller.org .
- Запустите программу установки. Проверьте «Добавить исполняемые файлы Ruby на свой PATH», затем установите.
- Чтобы получить доступ к Ruby, перейдите в меню Windows, выберите «Все программы», прокрутите вниз до Ruby и нажмите «Start Command Prompt with Ruby». Откроется терминал командной строки. Если вы
ruby -v
и нажмите Enter, вы увидите номер версии Ruby, который вы установили.
Шаг 2: Комплект разработки Ruby
После установки Ruby мы можем попытаться установить Rails. Но некоторые из библиотек Rails зависят от необходимости некоторых инструментов сборки для компиляции, а Windows не имеет этих инструментов по умолчанию. Вы можете определить это, если вы видите ошибку при попытке установить Rails Gem::InstallError: The '[gem name]' native gem requires installed build tools.
Чтобы исправить это, нам нужно установить Ruby Development Kit.
- Загрузить DevKit
- Запустите программу установки.
- Нам нужно указать папку, в которой мы собираемся навсегда установить DevKit. Я рекомендую установить его в корень вашего жесткого диска в
C:\RubyDevKit
. (Не используйте пробелы в имени каталога.)
Теперь нам нужно сделать инструменты DevKit доступными для Ruby.
- В командной строке перейдите в каталог DevKit.
cd C:\RubyDevKit
или любой другой каталог, в который вы его установили. - Нам нужно запустить скрипт Ruby для инициализации установки DevKit. Тип
ruby dk.rb init
. Теперь мы расскажем об этом же скрипте, чтобы добавить DevKit в нашу установку Ruby. Типruby dk.rb install
.
Теперь DevKit будет доступен для ваших инструментов Ruby, которые будут использоваться при установке новых библиотек.
Шаг 3: Рельсы
Теперь мы можем установить Rails. Rails - это драгоценный камень Ruby. В командной строке введите:
gem install rails
Как только вы нажмете Enter, программа gem
будет загружать и устанавливать эту версию Rails-жемчужины вместе со всеми остальными драгоценными камнями.
Шаг 4: Node.js
Некоторые библиотеки, от которых зависит Rails, требуют установки времени выполнения JavaScript. Давайте установим Node.js, чтобы эти библиотеки работали правильно.
- ВЫГРУЖАТЬ Node.js установки из здесь .
- Когда загрузка завершена, зайдите в папку для загрузки и запустите установщик
node-v4.4.7.pkg
. - Прочтите полное лицензионное соглашение, примите условия и нажмите «Далее» через остальных мастеров, оставив все по умолчанию.
- Появится окно с вопросом, хотите ли вы разрешить приложению вносить изменения в свой компьютер. Нажмите «Да».
- Когда установка будет завершена, вам необходимо перезагрузить компьютер, чтобы Rails мог получить доступ к Node.js.
После перезагрузки компьютера не забудьте перейти в меню Windows, нажмите «Все программы», прокрутите вниз до Ruby и нажмите «Начать командную строку с Ruby».