Понимание основ Ruby on Rails: HTTP, MVC и Routes

После изучения вашего первый язык программирования, вы можете спросить, что вы можете делать с программированием: ИИ/машинное обучение? Разработка оборудования? Мобильные приложения? Или, может быть, вы хотите начать разработку веб-приложений! 😃

Здесь мы поймем основы работы сети, маршрутов и архитектуры MVC с использованием веб-фреймворка Ruby on Rails. Давайте погрузимся в веб-мир.

Прежде чем изучать веб-разработку с помощью Rails, я настоятельно рекомендую изучить Рубин первый.

Как работает сеть?

В паутине есть куча слоев (Приложение, TCP, Интернет, Аппаратные уровни), которые все связаны. Но в принципе работает через HTTP (Протокол передачи гипертекста).

Протокол передачи гипертекста (HTTP) — это прикладной протокол для распределенных, совместных информационных систем гипермедиа. — Википедия

HTTP работает как цикл запрос — ответ в модели клиент — сервер.

У нас есть веб-браузер (например, Google Chrome). Итак, мы набираем www.google.com URL, и клиент отправляет HTTP-запрос (сообщение запроса) на сервер. Сервер возвращает HTTP-ответ (ответное сообщение — в этом случае ответом является HTML-код с веб-сайта Google).

Клиент выполняет запрос и получает ответ от сервера. Клиент обрабатывает пользовательский интерфейс и взаимодействие с пользователем. На сервере мы можем хранить и извлекать данные (в базах данных), обрабатывать логику в фоновом режиме (работники/задания) и многое другое.

Если вы хотите глубоко понять это, я предложу некоторые ресурсы. я большой поклонник Притипосты. Здесь ряд 3 части:

Архитектура MVC и маршруты Rails

Теперь, когда мы понимаем, как работает Интернет, мы изучим архитектуру MVC и маршруты Rails.

MVC означает модель, представление и контроллер.

В этой архитектуре у нас есть «разделение задач» между моделями, представлениями и контроллерами. Каждая часть несет свою ответственность. Давайте углубимся в каждую часть.

Модель

«Поддерживает связь между объектом и базой данных и обрабатывает проверку, ассоциацию, транзакции»

Это означает, что модель будет поддерживать экстремальную связь с базой данных. Каждая модель (может) представлять таблицу базы данных (в случае баз данных SQL). Этот объект модели получает возможности (унаследованные от класса ActiveRecord — Rails) для извлечения, сохранения, редактирования и удаления данных из таблицы базы данных. Мы используем объекты модели в качестве слоя между нашим приложением и базой данных.

Помимо этой связи с базой данных, модель может создавать проверкиа также ассоциации между моделями.

Вид

«Представление данных в определенном формате, вызванное решением контролера представить данные».

Это представление ответа на запрос. Эта презентация может быть в нескольких форматах: PDF, HTML, JSON и т. д. Конечным результатом просмотра, скорее всего, будет пользовательский интерфейс (UI) — часть «Клиента».

Для большинства веб-страниц представления представляют собой HTML-стили с использованием CSS и JS. Но мы можем реализовать PDF-файлы поведения пользователя на Цифровой продукт для путешествий показать всем сотрудникам, как люди используют их веб-сайт.

Контроллер

«Средство в приложении, которое направляет трафик, с одной стороны, запрашивая модели для конкретных данных, а с другой стороны, организуя эти данные (поиск, сортировка) в форму, которая соответствует потребностям данного представления».

Контроллер — «Маэстро». Он заботится о потоке: использует модели для выполнения запросов, анализирует данные и принимает решения о том, в каком формате вы будете представлять данные.

Цикл MVC и Routes в приложении Rails

Итак, представьте, что мы работаем в Туристический стартап. Частью продукта является представление список замечательных статей о путешествиях и советы путешественникам.

Просто подумайте с точки зрения путешественника. Вы идете на www.worldpackers.com/articles и вы видите красивую страницу со списком отличных статей.

Когда вы вводите этот URL-адрес в браузере, он отправляет запрос на сервер. На сервере у нас есть веб-приложение Rails. Маршрутизатор Rails проверяет, есть ли запись, соответствующая запрошенному URL-адресу.

Нам просто нужно настроить маршруты для этой строки:

resources :articles 

Это создаст маршруты RESTful для статей. Если мы побежим bundle exec rake routesон покажет список созданных путей.

HTTP VERB   PATH                          Controller#Action
GET         /articles(.:format)           articles#index
POST        /articles(.:format)           articles#create
GET         /articles/new(.:format)       articles#new
GET         /articles/:id/edit(.:format)  articles#edit
GET         /articles/:id(.:format)       articles#show
PATCH       /articles/:id(.:format)       articles#update
PUT         /articles/:id(.:format)       articles#update
DELETE      /articles/:id(.:format)       articles#destroy

Глагол HTTP может быть GET, POST, PATCH, PUTили же DELETE. И мы знаем, как Rails сопоставляет каждый PATH Направо controller а также action. Читать далее здесь.

В нашем случае сервер получит /articles путь и GET как HTTP-глагол. Он будет отображаться на ArticlesController а также index действие.

в контроллерArticlesController мы используем модель Article чтобы получить все статьи в базе данных и отобразить Посмотреть index.html.erb как ответ сервера (пользовательский интерфейс).

class ArticlesController < ApplicationController
  def index
    @articles = Article.all
  end
end

По соглашению этот контроллер будет отображать представление в views/articles/index.html.erb. По сути, это обычный HTML-файл, работающий на Ruby.

Цикл запроса-ответа Rails — это одна из первых концепций, которые вам нужно понять, когда вы начинаете изучать веб-разработку.

Пользователь делает что-то (запрашивает сервер), приложение Rails имеет маршрутизатор для сопоставления пути URL с правильным контроллером. В контроллере мы можем выполнять все действия с моделью (или несколькими моделями) — получение, сохранение, редактирование, удаление данных — и отображать представление для пользователя.

Это все!

Мы многому здесь научились. Я надеюсь, что вы, ребята, оцените этот материал и узнаете больше о том, как архитектура MVC и маршрутизация работают в Rails.

Это еще один шаг вперед в моем путешествии по изучению и освоению Rails и веб-разработки. Вы можете увидеть документацию о моем полном путешествии здесь, на моем Публикация «Ренессанс Девелопер».

Если вы хотите полный Рубин а также Рельсы конечно, изучите реальные навыки кодирования и создавайте проекты, попробуйте Один месяц Ruby Bootcamp а также Учебный курс по Rails. Увидимся там ☺

Получайте удовольствие и продолжайте учиться и программировать.

Мой Твиттер, Середина, Гитхаб & LinkedIn. ☺

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *