Вступление
Rails - инфраструктура веб-приложений, написанная по адресу Ruby. Это требует взвешенного подхода к разработке приложений, предполагая, что установленные соглашения лучше всего служат разработчикам, когда есть общая цель. Поэтому Rails предлагает соглашения для обработки маршрутизации, данных о состоянии, управления активами и многого другого для обеспечения базовой функциональности, которая нужна большинству веб-приложений.
Rails следует архитектурному шаблону model-view-controller (MCV), который разделяет логику приложения, расположенную в моделях. , от маршрутизации и представления информации о приложении. Эта организационная структура - наряду с другими соглашениями, которые позволяют разработчикам извлекать код в helpers и https://api.rubyonrails.org/classes/ActionView/ PartialRenderer.html [partials] - гарантирует, что код приложения не будет излишне повторять https://en.wikipedia.org/wiki/Don%27t_repeat_yourself
В этом руководстве вы создадите приложение Rails, которое позволит пользователям размещать информацию об акулах и их поведении. Это будет хорошей отправной точкой для будущей разработки приложений.
Предпосылки
Чтобы следовать этому уроку, вам понадобится:
-
Локальный компьютер или сервер разработки под управлением Ubuntu 18.04. Ваша машина разработки должна иметь пользователя без полномочий root с правами администратора и брандмауэром, настроенным с помощью
+ ufw +
. Инструкции о том, как это настроить, см. В нашем учебном руководстве Initial Настройка сервера с Ubuntu 18.04. -
https://nodejs.org [Node.js] и npm, установленные на локальном компьютере или на сервере разработки. В этом руководстве используются версия Node.js и версия npm. Для получения инструкций по установке Node.js и npm в Ubuntu 18.04 следуйте инструкциям в разделе «Установка с использованием PPA» на странице https://www.digitalocean.com/community/tutorials/how-to-install-node-js-. on-ubuntu-18-04 # Установка-использование-a-ppa [Как установить Node.js в Ubuntu 18.04].
-
Ruby, rbenv и Rails, установленные на локальном компьютере или на сервере разработки, следуя шагам 1-4 в https://www.digitalocean.com/community/tutorials/how- to-install-ruby-on-rails-with-rbenv-on-ubuntu-18-04 [Как установить Ruby on Rails с помощью rbenv в Ubuntu 18.04]. В этом руководстве используются Ruby, rbenv и Rails.
Шаг 1 - Установка SQLite3
Перед созданием нашего приложения Rails shark нам необходимо убедиться, что у нас есть база данных для хранения пользовательских данных. Rails настроен на использование SQLite по умолчанию, и это часто хороший выбор при разработке. Поскольку данные нашего приложения не требуют программной расширяемости высокого уровня, SQLite удовлетворит наши потребности.
Сначала обновите индекс вашего пакета:
sudo apt update
Затем установите пакеты + sqlite3 +
и + libsqlite3-dev
:
sudo apt install sqlite3 libsqlite3-dev
Это установит и SQLite, и его необходимые файлы для разработки.
Проверьте свою версию, чтобы подтвердить, что установка прошла успешно:
sqlite3 --version
Output 2018-01-22 18:45:57
Установив SQLite, вы готовы приступить к разработке приложения.
Шаг 2 - Создание нового проекта Rails
С нашей установленной базой данных мы можем создать новый проект Rails и посмотреть на стандартный шаблонный код, который Rails дает нам с помощью `+rails new + ` команда.
Создайте проект с именем ++
с помощью следующей команды:
rails new
Вы увидите много информации о том, что Rails создает для вашего нового проекта. Вывод ниже выделяет некоторые важные файлы, каталоги и команды:
Output create
. . .
create Gemfile
. . .
create app
. . .
create app/controllers/application_controller.rb
. . .
create app/models/application_record.rb
. . .
create app/views/layouts/application.html.erb
. . .
create config
create config/routes.rb
create config/application.rb
. . .
create config/environments
create config/environments/development.rb
create config/environments/production.rb
create config/environments/test.rb
. . .
create config/database.yml
create db
create db/seeds.rb
. . .
run bundle install
. . .
Bundle complete! 18 Gemfile dependencies, 78 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
. . .
* bin/rake: Spring inserted
* bin/rails: Spring inserted
Выделенный здесь вывод говорит о том, что Rails создал следующее:
-
+ Gemfile +
: в этом файле перечислены зависимости gem для вашего приложения. Https://guides.rubygems.org/what-is-a-gem/[gem] представляет собой пакет программного обеспечения Ruby, а Gemfile позволяет вам управлять программными потребностями вашего проекта. -
+ app +
: каталог+ app +
- это то место, где живет ваш основной код приложения. Сюда входят модели, контроллеры, представления, активы, помощники и почтовые программы, которые составляют само приложение. Rails дает вам некоторый шаблон уровня приложения для модели MCV, которая запускается в таких файлах, как+ app / models / application_record.rb +
,+ app / controllers / application_controller.rb +
и `+ app / views / layouts / application .html.erb + `. -
+ config +
: этот каталог содержит параметры конфигурации вашего приложения: -
+ config / rout.rb +
: объявления маршрутов вашего приложения находятся в этом файле. -
+ config / application.rb +
: общие настройки для компонентов вашего приложения находятся в этом файле. -
+ config / environment +
: в этом каталоге находятся параметры конфигурации для ваших сред. Rails включает в себя три среды по умолчанию:+ development
,` + production` и+ test
. -
+ config / database.yml +
: параметры конфигурации базы данных находятся в этом файле, который разбит на четыре раздела:+ default +
,+ development +
,+ production +
и+ test +
. Благодаря Gemfile, поставляемому с командой+ rails new +
, которая включала гем+ sqlite3 +
, наш файл+ config / database.yml +
уже имеет свой параметр+ adapter +
, установленный в+ sqlite3 +
, указывая что мы будем использовать базу данных SQLite с этим приложением. -
+ db +
: эта папка содержит каталог для базы данных migrations с именем+ migrate +
, а также+ schema.rb +
и+ seed.rb +
файлы.+ schema.db +
содержит информацию о вашей базе данных, а+ seed.rb +
- это место, где вы можете разместить начальные данные для базы данных.
Наконец, Rails запускает команду +bundle install + `
для установки зависимостей, перечисленных в вашем