Мне хочется создать простой и понятный скрипт интернет магазина. Который будет полезен людям. И в котором сразу по умолчанию будут имется все базовые вещи. Такие как фильтр, корзина, система оплаты, загрузка из экселя и так далее.
Скрипт будет иметь открытый исходный код. И кроме этого он должен быть легко устанавливаеммым на хостинг. Даже на шаред хостинг тарифах.
В качестве интсрумента мы выбираем Ruby on Rails. Почему? Во-первых он очень функциональный. Во-вторых он относительно простой. В-третьих с ним можно делать сайты быстрее чем на любом другом фреймворке. Раз на раз в этом отношении Рейлсы сделают любого. И еще один плюс состоит в том что этот фреймворк часто выбирают для e-commerce. Например такие гиганты как Shopify, Coinbase, Airnb как раз сделаны на нем.
Сам процесс создания будет изложен как курс. Который может быть полезен начинающим программистам. И так начнем!
Установка Ruby on Rails
Перед тем как работать с Рейлсами вы должны их установить у себя. Или воспользоваться разными онлайн платформами. Например такими как Replit. Мы рекомендуем вам сначала поработать в онлайн площадке. А потом, постепенно установить фреймворк на компьютер. Чтобы не застрять в дебрях установок. Инструкции по установке Рейлса имеются в Ютубе, в разных блогах. Рекомендую новичкам этот ресурс - https://gorails.com/setup/windows/11. Здесь имеются очень много разного рода уроков. Еще и этот сайт тоже не плох - https://www.digitalocean.com/community/tutorials/how-to-install-ruby-on-rails-with-rbenv-on-ubuntu-22-04
После того как установили Рейлсы должно при запуске выходить такое:

Это так называемый Хелло Ворлд! Заходим в консоль. Идем в папку где расположен наш проект. Для этого есть комманда cd. Например если у вас проект расположен в папке my/project то в консоли набираем cd /my/project. Это в линуксе.
Scaffolding помогает экономить время!
Сколько времени нужно чтобы создать таблицу в базе данных, создать форму для ввода данных, страницу добавления записи, страницу для изменения записи с базе данных? Для начинающего программиста целая вечность! А на Рейлсах можно сделать одним кликом. Это называется скаффолдингом. То есть генерацией готового кода.
Идем в консоль и пишем такую комманду:
rails g scaffold category name:string title:string description:string text:text image:image reti:integer
Все! Код сгенирирован! Теперь набираем в консоли:
rails db:migrate
Что это за комманда? Это комманда для запуска миграции в Базе Данных. Сам синтаксис скаффолдинга ресурса довольно простой.
g значит генерация, category это имя ресурса (если сказать по простому то это название таблицы в Базе Данных). Вы можете написать вместо этого например post, article или по другому. name:string значит что у нашего ресурса будет поле name в Базе Данных с строковым типом. text это текстовый тип (например для описания товаров или категории) а integer является простым числом (0, 100, -10000, 12, 77 и так далее).
Для запуска Рейлсов есть комманда:
rails s
Открываем страницу http://localhost:3000/categories и мы увидем CRUD:

Жмем на "New category" и откроется форма для ввода данных:

Если ее заполнить и нажать на "Create Category" то у нас создается новая страница. Все страницы будут выходит списком вот здесь:

Если нажать на ссылку "Show this category" то мы увидем нашу страницу:

То есть мы по сути дела создали мини блог одной коммандой! Круто! Если вы хотите чтобы эти страницы выходили на главной то нужно поменять роуты для этого идем в папку config/routes.rb и там пишем вот такую строку:
root "categories#index"
Если у вас не categories а articles то пишем root "articles#index". Теперь дадим некоторые пояснения по терминам. Чтобы начинающие программисты знали это.
Что такое скаффолдинг?
Скаффолдинг это генерация кода. Вы пишите в консоли параметры того чего хотите получить а Рейлсы делают все за вас. Они создают скелет того что потом вы можете немного изменив использовать в разработке. Порой при генерации создаются десятки файлов. Если их создавать в ручную то понятное дело можно потерять много времени.
Что такое CRUD?
CRUD это сокращение от Create, Read, Update и Delete. Короче говоря это часть приложения где создаются, читаются, изменяются и удаляются записи. Как в примере выше.То есть создается функционал где можно добавить запись, потом ее изменить, или удалить а также посмотреть что мы ввели.