На этой неделе мы изучили Ruby и Ruby on Rails. Мне очень понравилось изучать второй язык, потому что это было сложно и отличалось от того, что мы изучали последние 9 недель.

Мы узнали о простоте и элегантности синтаксиса Ruby и получили возможность довольно быстро (по сравнению с приложениями JavaScript и Express/Node) создать несколько достойных CRUD-приложений.

Для начала мы можем запустить следующее в нашей командной строке:

rails new name_of_app -d postgresql

-d postgresql изменяет тип базы данных по умолчанию на postgresql, потому что по умолчанию для рельсов используется sqlite. Postgresql проще для нас, чтобы перейти от разработки к производству для небольших веб-приложений.

Мы могли бы просто запустить следующее, чтобы создать все наши маршруты и контроллеры:

rails generate scaffold post title:string content:text author:string

Но где же в этом веселье? Создание приложения — это часть удовольствия от программирования! И мы теряем часть контроля над функциональностью нашего приложения. Иногда проще создать собственные контроллеры.

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

bundle install
rake db:create
rake db:migrate

Это гарантирует, что все наши драгоценные камни установлены, а наша база данных настроена и готова к работе.

Мы можем создать ярлык в нашем файле маршрутов, который устанавливает семь основных спокойных маршрутов, которые мы используем во всех наших основных приложениях CRUD. (Четыре метода GET, POST, PUT и DELETE.)

Rails.application.routes.draw do
  resources :pizza_places
end

Теперь мы можем создать и начать писать наши контроллеры. Самым простым является указатель, который показывает все элементы, в данном случае Pizza Places, в нашем приложении:

def index
  @pizza_places = PizzaPlace.all
end

Мы можем написать контроллеры для индексации, показа, создания, редактирования, обновления и уничтожения. Эти контроллеры взаимодействуют с нашими представлениями, которые выводят то, что наши пользователи увидят на любой данной странице. Мы можем многое сделать с нашими представлениями в Rails. Мы можем написать ajax в наших представлениях, чтобы сделать наши приложения одностраничными. Мы можем использовать такие вещи, как помощники форм, чтобы упростить создание форм с большей защитой. Мы также можем использовать партиалы, чтобы можно было повторно использовать фрагменты кода, которые мы могли видеть более чем в одном месте. Это может быть верхний и нижний колонтитулы или форма, используемая для создания новой части информации или редактирования части информации.

Пример помощника формы:

<%= form_for @pizza_place do |f| %>
  <p>
    <%= f.label :name %>:
    <%= f.text_field :name, placeholder: “Pizza Place Name” %>
  </p>
  <p>
    <%= f.label :street_address %>:
    <%= f.text_field :street_address %>
  </p>
  <p>
    <%= f.label :city %>:
    <%= f.text_field :city %>
  </p>
  <p>
    <%= f.label :state %>:
    <%= f.text_field :state %>
  </p>
  <p>
    <%= f.label :zip_code %>:
    <%= f.text_field :zip_code %>
  </p>
  <%= f.submit %>
<% end %>

Проведя так много времени с JavaScript, было весело и сложно сменить темп работы с Ruby и Ruby on Rails. Между ними так много различий, в том числе то, где вы размещаете ссылки на скрипты или внешние библиотеки, такие как Font-Awesome или Google Fonts. Синтаксис другой (хотя есть сходство, которое сделало Ruby немного проще/быстрее в освоении, зная немного больше о программировании). Сообщения об ошибках также отличаются. Большинство сообщений об ошибках Ruby, с которыми я сталкивался, были более простыми и полезными при отладке.

Я с нетерпением жду самостоятельного исследования и изучения Ruby после снимка, который я получил на прошлой неделе.