... > Ruby > Web-разработка с использованием...

Web-разработка с использованием Ruby

НАВИГАЦИЯ ПО СТРАНИЦЕ

Установка Sinatra

Sinatra — это минималистичный веб-фреймворк для Ruby, предназначенный для быстрого создания веб-приложений. В отличие от более тяжеловесных фреймворков, таких как Ruby on Rails, Sinatra предлагает простой и легковесный подход.

Установка Sinatra

Для начала работы с Sinatra, убедитесь, что у вас установлен Ruby и RubyGems. Затем установите Sinatra с помощью команды:

gem install sinatra

Пример Простого Веб-Приложения

Создайте файл app.rb с следующим содержанием:

# app.rb
require 'sinatra'

get '/' do
  'Привет, мир!'
end

Запуск Веб-Приложения

В командной строке перейдите в каталог, содержащий ваш файл app.rb, и выполните команду:

ruby app.rb

После этого ваше веб-приложение будет доступно по адресу http://localhost:4567 в веб-браузере.

Маршруты в Sinatra

Sinatra использует простой синтаксис для определения маршрутов и их обработчиков. Вот примеры различных маршрутов:

# Определение маршрута для HTTP-запроса GET по корневому пути
get '/' do
  'Главная страница'
end

# Определение маршрута с параметром
get '/hello/:name' do
  "Привет, #{params[:name]}!"
end

# Определение маршрута для обработки POST-запроса
post '/submit' do
  'Данные отправлены!'
end

Интеграция с Шаблонизаторами

Sinatra интегрируется легко с различными шаблонизаторами, такими как ERB, Haml, Slim. Пример использования ERB:

# Использование ERB для шаблонов
get '/template' do
  @name = 'Мир'
  erb :template
end

Создайте файл views/template.erb:

<!-- views/template.erb -->
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Привет, <%= @name %></title>
</head>
<body>
  <h1>Привет, <%= @name %></h1>
</body>
</html>

Использование Статических Файлов

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

# Поддержка статических файлов из каталога public
set :public_folder, 'public'

Поместите статические файлы в каталог public.

Middleware в Sinatra

Sinatra также поддерживает middleware, что позволяет легко добавлять дополнительные функциональные возможности, такие как логгирование, обработка исключений и др.

# Пример middleware для логгирования запросов
class RequestLogger
  def initialize(app)
    @app = app
  end

  def call(env)
    puts "Received request: #{env['REQUEST_METHOD']} #{env['REQUEST_PATH']}"
    @app.call(env)
  end
end

use RequestLogger

Sinatra предоставляет простой и элегантный способ создания веб-приложений на Ruby. Он идеально подходит для маленьких и средних проектов, где необходимо быстро развернуть прототип или создать простое веб-приложение.