Как добавить стимул в приложение Ruby on Rails

Вступление

Если вы работаете с проектом Ruby on Rails, ваши требования могут включать некоторую интерактивность с HTML-кодом, созданным вашим https://guides.rubyonrails.org/v5.2/action_view_overview.html. [просмотреть шаблоны]. Если это так, у вас есть несколько вариантов реализации этой интерактивности.

Например, вы можете внедрить платформу JavaScript, например React или https://emberjs.com. / [угасающий]. Если ваши требования включают в себя состояние обработки на стороне клиента или вас беспокоят проблемы с производительностью, связанные с частыми запросами к серверу, тогда может иметь смысл выбрать одну из этих платформ. Многие одностраничные приложения (SPA) используют этот подход.

Однако при реализации инфраструктуры, которая управляет состоянием и частыми обновлениями на стороне клиента, следует учитывать несколько соображений:

  1. Это возможно для требований к загрузке и преобразованию - таких как синтаксический анализ JavaScript, а также выборка и преобразование JSON в HTML - для ограничения производительности.

  2. Приверженность фреймворку может включать в себя написание большего количества кода, чем требует ваш конкретный вариант использования, особенно если вы ищете мелкомасштабные улучшения JavaScript.

  3. Состояние, управляемое как на стороне клиента, так и на стороне сервера, может привести к дублированию усилий и увеличить площадь ошибок.

В качестве альтернативы команда по адресу Basecamp (та же команда, которая написала Rails) создала https://stimulusjs.org [Stimulus.js], которую они описывают как «скромную среду JavaScript для HTML, который у вас уже есть ». Стимул предназначен для улучшения современного приложения на Rails, работая с серверным HTML-кодом. Состояние находится в Document Object Model (DOM), и платформа предлагает стандартные способы взаимодействия с элементами и событиями. в ДОМ. Он работает бок о бок с Turbolinks (включен в Rails 5+ по умолчанию), чтобы повысить производительность и время загрузки с помощью кода, который ограничен и имеет четко определенную цель.

В этом руководстве вы будете устанавливать и использовать Stimulus для создания существующего приложения на Rails, которое предлагает читателям информацию об акулах. В приложении уже есть модель для обработки данных об акулах, но вы добавите вложенный ресурс для сообщений об отдельных акулах, что позволит пользователям выстраивать мысли и мнения об акулах. Эта часть работает примерно параллельно [Как создать вложенные ресурсы для Ruby на Rails Application, за исключением того, что мы будем использовать JavaScript для управления положением и внешним видом постов на странице. Мы также примем несколько иной подход к построению самой модели поста.

Предпосылки

Чтобы следовать этому уроку, вам понадобится:

  • Локальный компьютер или сервер разработки под управлением 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/ Как установить Ruby on Rails с помощью rbenv в Ubuntu 18.04. В этом руководстве используются Ruby, rbenv и Rails.

  • Установлен SQLite и создано базовое информационное приложение по акулам, следуя указаниям в https://www.digitalocean.com/community/tutorials/how-to-build-a-ruby-on-rails-application[Как построить Ruby на Rails Application.

Шаг 1 - Создание вложенной модели

Нашим первым шагом будет создание вложенной + Post + model, которую мы свяжем с нашей существующей моделью + Shark +. Мы сделаем это, создав активную запись associations между нашими моделями: посты будут принадлежать определенным акулам, и каждая акула может иметь несколько постов.

Чтобы начать, перейдите в каталог + sharkapp +, который вы создали для своего проекта Rails, в предварительных условиях:

cd sharkapp

Чтобы создать нашу модель + Post +, мы будем использовать команду +rails generate + ` с генератором

Related