Ruby on Rails (مفهومی)
معرفی فریمورک Ruby on Rails، الگوی MVC و ساختار پروژه
Ruby on Rails چیست؟
Ruby on Rails (یا به اختصار Rails) محبوبترین فریمورک وب برای روبی است. توسط دیوید هاینمیر هانسون در سال ۲۰۰۴ ساخته شد.
فلسفه Rails
- Convention over Configuration: قرارداد بهجای پیکربندی
- Don't Repeat Yourself (DRY): تکرار نکنید
- MVC Pattern: الگوی Model-View-Controller
الگوی 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
- GitHub
- Shopify
- Airbnb
- Stripe
- Twitch
- SoundCloud
خلاصه
Rails یک فریمورک قدرتمند و کامل برای ساخت وباپلیکیشنهای سریع و مقیاسپذیر است. اگر روبی را یاد گرفتهاید، گام بعدی یادگیری Rails است!
این مبحث بخشی از دوره آموزش کامل روبی است.