"Тема выступления рассчитана, в основном, на начинающих разработчиков. В ней освещены основные концепции веб разработки с помощью фреймворка ""Ruby On Rails"". Выступление будет разделено на основные тематики:
- что это за фреймворк и что значит выражение “Ruby On Rails”
- будет рассмотрен паттерн MVC в Rails
- подробно рассмотрены соотвествующие уровни (модель, контроллер, представление)
- отправка почты, нюансы и решения
- отложенные и периодические задачи
- особое внимание будет уделено тестированию приложений"
2. О ФРЕЙМВОРКЕ
• Еще один фреймворк
• Написан полностью на Ruby
• … by David Heinemeier Hansson
• … как ядро BaseCamp
• 3 146 контрибьюторов на 2016
3. О ФРЕЙМВОРКЕ
• Conventions over configurations
• DRY (Don`t repeat yourself)
• Поддерживает почти все современные
базы данных
• Удобство и простота в разработке веб-
приложений
6. ACTIVE RECORD: MIGRATION
class CreatePublications < ActiveRecord::Migration[5.0]
def change
create_table :publications do |t|
t.string :title
t.text :description
t.references :publication
t.boolean :single_issue
t.timestamps
end
add_index :publications, :publication_type_id
end
end
7. ACTIVE RECORD: MODEL
class Publication < ActiveRecord::Base
validates :title, presence: true
validates :description, presence: true
#...
end
# How to use:
publication = Publication.new({
title: "Post1",
description: "This is my description"
})
publication.save # => true/false
8. КОНТРОЛЛЕР
• И тут соглашения!
• Методы и экшены
• Работа с параметрами запроса
• Сессии
• Фильтры
• Безопасность
10. CONTROLLER
class PublicationsController < ApplicationController::Base
def index
@publications = Publications.all
end
def show
@publication = Publication.find(params[:id])
end
end
15. TESTS: RSPEC
RSpec.describe TeamsController do
describe "GET index" do
it "assigns @teams" do
team = Team.create
get :index
expect(assigns(:teams)).to eq([team])
end
it "renders the index template" do
get :index
expect(response).to render_template("index")
end
end
end