Как создать проект с Ruby on Rails и PostgreSQL в Ubuntu 20.04

12 set 2022 4 min di lettura
Как создать проект с Ruby on Rails и PostgreSQL в Ubuntu 20.04
Indice dei contenuti

Введение

Ruby on Rails (RoR) — это среда веб-приложений с открытым исходным кодом, опубликованная под лицензией MIT. Это серверная среда веб-приложений, которая следует концепции Model-View-Controller (MVC).

Rails предоставляет предопределенные структуры для базы данных, веб-службы и веб-страниц.Более 3000 разработчиков внесли код в среду Rails, и существует множество хорошо известных приложений на основе Rails, таких как Github, Airbnb, Soundcloud и т. д.

В этом руководстве мы покажем вам, как создать проект с Ruby on Rails в Ubuntu 20.04 LTS Focal Fossa.

Предпосылки

Для этого руководства вам понадобятся:

Если вы хотите создать проект с Ruby on Rails на удаленном сервере, продолжайте чтение, в противном случае пропустите первый абзац «Подключение к серверу» и прочитайте следующий.

Подключение к серверу

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:

ssh root@IP_DEL_SERVER

Далее вам нужно будет ввести пароль пользователя root.

Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:

ssh nome_utente@IP_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя.

Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Установите и настройте PostgreSQL.

В этом руководстве мы будем использовать PostgreSQL в качестве базы данных для нашего проекта Rails. И на этом этапе мы установим сервер базы данных PostgreSQL, предоставленный официальным репозиторием Ubuntu.

Установите сервер базы данных PostgreSQL в Ubuntu 20.04, используя приведенную ниже команду apt.

sudo apt install postgresql postgresql-contrib libpq-dev -y

После завершения установки запустите службу PostgreSQL и добавьте ее при запуске системы.

systemctl start postgresql
systemctl enable postgresql

Служба PostgreSQL запущена и работает.

Затем войдите в оболочку PostgreSQL и создайте новую роль «nov_role» с паролем «nov_pass» и привилегиями «createdb» и «login».

sudo -i -u postgres psql
create role nov_role with createdb login password 'nov_pass';

Теперь перечислите всех пользователей, доступных в PostgreSQL, используя следующий запрос.

\du

И вы получите роль «nov_role» для пользователей списка PostgreSQL:

 List of roles
 Role name | Attributes | Member of
 -----------+------------------------------------------------------------+-----------
 nov_role | Create DB | {}
 postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

Выйдите из оболочки PostgreSQL:

\q

Для получения дополнительной информации о PostgreSQL читайте: Как установить PostgreSQL на Ubuntu 20.04 LTS.

Создайте проект с Ruby on Rails

По умолчанию Ruby on Rails использует SQLite в качестве базы данных по умолчанию. И для этого руководства мы собираемся начать новый проект Rails с использованием базы данных PostgreSQL.

Создайте новый проект nov_app с базой данных PostgreSQL по умолчанию, используя следующую команду rails.

rails new nov_app -d postgresql

Теперь вы получите каталог проекта «nov_app», перейдите в каталог проекта с помощью команды cd и измените конфигурацию базы данных «config/database.yml» с помощью редактора nano.

cd nov_app/
nano config/database.yml

В разделе development добавьте конфигурацию базы данных, как показано ниже.

 host: localhost
 port: 5432
 username: nov_role
 password: nov_pass

Перейдите в раздел testing и добавьте конфигурацию базы данных PostgreSQL, как показано ниже.

 host: localhost
 port: 5432
 username: nov_role
 password: nov_pass

Когда закончите, сохраните и закройте файл, нажав CTRL+X, затем Y и ENTER, чтобы подтвердить изменения.

Затем запустите приведенные ниже команды rails, чтобы сгенерировать и перенести базу данных для нашего проекта Rails и убедиться в отсутствии ошибок.

rails db:setup
rails db:migrate

После завершения установки запустите веб-сервер puma rails по умолчанию, используя следующую команду.

Приложение будет работать на вашем общедоступном IP-адресе с портом 8080:

=> Booting Puma
 => Rails 6.0.3.1 application starting in development
 => Run `rails server --help` for more startup options
 Puma starting in single mode...
 * Version 4.3.5 (ruby 2.7.1-p83), codename: Mysterious Traveller
 * Min threads: 5, max threads: 5
 * Environment: development
 * Listening on tcp://0.0.0.0:8081

Теперь откройте веб-браузер и введите IP-адрес вашего сервера с портом 8080 в адресной строке: http://TUO_INDIRIZZO_IP:8080/

Вы получите стандартную страницу Ruby on Rails index.html.

Создайте простой CRUD с помощью Rails Scaffold

На этом этапе мы создадим новое простое приложение CRUD, используя базу данных Ruby on Rails и PostgreSQL.

Создайте простое приложение CRUD с помощью команды ruby ​​scaffold, как показано ниже:

rails g scaffold Post title:string body:text

Вы должны увидеть вывод, подобный следующему:

Running via Spring preloader in process 1578
 invoke active_record
 create db/migrate/20200527145454_create_posts.rb
 create app/models/post.rb
 invoke test_unit
 create test/models/post_test.rb
 create test/fixtures/posts.yml
 invoke resource_route
 route resources:posts
 invoke scaffold_controller
 create app/controllers/posts_controller.rb
 invoke erb
 create app/views/posts
 create app/views/posts/index.html.erb
 create app/views/posts/edit.html.erb
 create app/views/posts/show.html.erb
 create app/views/posts/new.html.erb
 create app/views/posts/_form.html.erb
 invoke test_unit
 create test/controllers/posts_controller_test.rb
 create test/system/posts_test.rb
 invoke helper
 create app/helpers/posts_helper.rb
 invoke test_unit
 invoke jbuilder
 create app/views/posts/index.json.jbuilder
 create app/views/posts/show.json.jbuilder
 create app/views/posts/_post.json.jbuilder
 invoke assets
 invoke scss
 create app/assets/stylesheets/posts.scss
 invoke scss
 create app/assets/stylesheets/scaffolds.scss

Затем перенесите базу данных с помощью следующей команды.

rake db:migrate
== 20200527145454 CreatePosts: migrating ======================================
 -- create_table(:posts)
 -> 0.0117s
 == 20200527145454 CreatePosts: migrated (0.0120s) =============================

Убедитесь, что ошибок нет, затем снова запустите сервер Puma.

rails s -b 0.0.0.0 -p 8080

Вернитесь в свой веб-браузер и введите IP-адрес сервера с портом 8080, добавив путь «/posts»: http://TUO_INDIRIZZO_IP:8080/posts

Теперь вы можете создавать, редактировать и удалять записи с помощью простого приложения CRUD и базы данных PostgreSQL, используя Rails Scaffold.

Вывод

В этом руководстве мы увидели, как создать приложение с использованием Ruby on Rails и PostgreSQL в Ubuntu 20.04 LTS Focal Fossa.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.