Ruby on Rails (مفهومی)

معرفی فریمورک Ruby on Rails، الگوی MVC و ساختار پروژه

Ruby on Rails چیست؟

Ruby on Rails (یا به اختصار Rails) محبوب‌ترین فریمورک وب برای روبی است. توسط دیوید هاینمیر هانسون در سال ۲۰۰۴ ساخته شد.

فلسفه Rails

الگوی MVC

بخشتوضیح
Modelداده و منطق کسب‌وکار (ActiveRecord)
Viewرابط کاربری (ERB templates)
Controllerهماهنگ‌کننده بین Model و View

ساخت پروژه Rails

# نصب Rails
gem install rails

# ساخت پروژه جدید
rails new my_app
cd my_app

# ساخت مدل و دیتابیس
rails generate model Post title:string body:text
rails db:migrate

# ساخت controller
rails generate controller Posts

# اجرای سرور
rails server

ساختار پروژه Rails

my_app/
  app/
    models/       # مدل‌ها
    views/        # قالب‌ها
    controllers/  # کنترلرها
    helpers/      # توابع کمکی
  config/         # پیکربندی
    routes.rb     # مسیریابی
  db/             # دیتابیس
    migrate/      # مهاجرت‌ها
  Gemfile         # وابستگی‌ها

مسیریابی (Routes)

# config/routes.rb
Rails.application.routes.draw do
  resources :posts
  # ایجاد می‌کند:
  # GET    /posts          → posts#index
  # GET    /posts/:id      → posts#show
  # GET    /posts/new      → posts#new
  # POST   /posts          → posts#create
  # GET    /posts/:id/edit → posts#edit
  # PATCH  /posts/:id      → posts#update
  # DELETE /posts/:id      → posts#destroy
end

Model (ActiveRecord)

# app/models/post.rb
class Post < ApplicationRecord
  validates :title, presence: true
  has_many :comments
end

# استفاده
post = Post.create(title: "سلام", body: "متن")
posts = Post.where("created_at > ?", 1.week.ago)

Controller

# app/controllers/posts_controller.rb
class PostsController < ApplicationController
  def index
    @posts = Post.all
  end

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

  def create
    @post = Post.create(post_params)
    redirect_to @post
  end

  private

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

View (ERB)

<!-- app/views/posts/index.html.erb -->
<h1>همه پست‌ها</h1>
<% @posts.each do |post| %>
  <h2><%= post.title %></h2>
  <p><%= post.body %></p>
<% end %>

شرکت‌های معروف استفاده‌کننده از Rails

خلاصه

Rails یک فریمورک قدرتمند و کامل برای ساخت وب‌اپلیکیشن‌های سریع و مقیاس‌پذیر است. اگر روبی را یاد گرفته‌اید، گام بعدی یادگیری Rails است!

این مبحث بخشی از دوره آموزش کامل روبی است.

ابزارهای مرتبط