На этой неделе мы изучили 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 после снимка, который я получил на прошлой неделе.