Основы Ruby on Rails: как создать веб-приложение за 30 минут | Урок 15

Основы Ruby on Rails: как создать веб-приложение за 30 минут Ruby

Привет, друзья! Сегодня мы погрузимся в захватывающий мир веб-разработки с Ruby on Rails. Если вы следили за нашим курсом по Ruby, то уже готовы сделать следующий шаг и создать свое первое веб-приложение. Поверьте, это проще, чем вы думаете!

Предыдущий урок: Библиотеки и гемы в Ruby

Следующий урок: Вернуться к началу курса

Что такое Ruby on Rails?

Ruby on Rails (или просто Rails) – это мощный фреймворк для создания веб-приложений, написанный на Ruby. Он следует принципу «convention over configuration» (соглашение важнее конфигурации), что позволяет разработчикам быстро создавать эффективные веб-приложения с минимальным количеством кода.

Почему стоит изучать Ruby on Rails в 2024 году?

  • Быстрая разработка: Rails позволяет создавать функциональные веб-приложения в кратчайшие сроки.
  • Большое сообщество: Множество разработчиков готовы помочь и поделиться опытом.
  • Богатая экосистема: Тысячи готовых решений (гемов) для различных задач.
  • Востребованность на рынке: Многие компании используют Rails, что создает спрос на специалистов.

Подготовка к работе

Прежде чем мы начнем, убедитесь, что у вас установлены:

  • Ruby (версия 3.0 или выше)
  • SQLite3
  • Node.js
  • Yarn

Теперь установим Rails:

gem install rails

Создаем наше первое приложение

Давайте создадим простой блог. Откройте терминал и выполните следующие команды:

rails new my_awesome_blog
cd my_awesome_blog

Rails автоматически создаст структуру проекта и установит необходимые зависимости.

Генерация модели и контроллера

Создадим модель для наших постов:

rails generate model Post title:string content:text
rails db:migrate

Теперь создадим контроллер:

rails generate controller Posts index show new create

Настройка маршрутов

Откройте файл config/routes.rb и добавьте следующую строку:

resources :posts

Реализация контроллера

Отредактируйте файл app/controllers/posts_controller.rb:

class PostsController < ApplicationController
  def index
    @posts = Post.all
  end

  def show
    @post = Post.find(params[:id])
  end

  def new
    @post = Post.new
  end

  def create
    @post = Post.new(post_params)
    if @post.save
      redirect_to @post
    else
      render 'new'
    end
  end

  private

  def post_params
    params.require(:post).permit(:title, :content)
  end
end

Создание представлений

Создайте файл app/views/posts/index.html.erb:

Мой блог



<% @posts.each do |post| %>

<%= link_to post.title, post_path(post) %>

<%= post.content %>


<% end %>

<%= link_to 'Новый пост', new_post_path %>

Создайте файл app/views/posts/show.html.erb:

<%= @post.title %>

<%= @post.content %>


<%= link_to 'Назад', posts_path %>

Создайте файл app/views/posts/new.html.erb:

Новый пост



<%= form_with model: @post, local: true do |form| %>
<%= form.label :title %> <%= form.text_field :title %>
<%= form.label :content %> <%= form.text_area :content %>


  <%= form.submit %>
<% end %>

<%= link_to 'Назад', posts_path %>

Запуск приложения

Теперь запустим наш сервер:

rails server

Откройте браузер и перейдите по адресу http://localhost:3000/posts. Поздравляю! Вы только что создали свой первый блог на Ruby on Rails!

Что дальше?

Это только начало вашего путешествия в мир Rails. Вот несколько тем для дальнейшего изучения:

  • Аутентификация пользователей
  • Тестирование в Rails
  • Работа с API
  • Деплой Rails-приложений

Заключение

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

Продолжайте практиковаться, изучайте документацию и не бойтесь экспериментировать. Удачи в вашем путешествии по миру веб-разработки с Ruby on Rails!

Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x