Skip to main content


Active Record یک جم برای ارتباط سازمان دیده با دیتابیس بوده که توسط Rails تنظیم و فراخوانی میشود. این یک آشنایی با Active Record است و دانش SQL و Rails تا حدئ توصیه میشود هرچند نیازی به این دانش برای درک این مقاله نیست.

برای استفاده ابتدایی از ActiveRecord باید سه بخش از آن‌ را بشناسیم.

  1. Migration & Schema System (که به ظاهر دیتابیس شکل میدهد)
  2. CRUD Operations (که وظیفه ساختن، پیدا کردن، حذف کردن و تغییر دادن یک تیکه اطلاعات را به عهده دارد)
  3. Query Interface (که وظیفه پیدا کردن و رابطه برقرار کردن بین اطلاعات را به عهده دارد)

تنظیمات اولیه

میتوانید ActiveRecord را به دیتابیس‌هایی‌ مانند PostgreSQL, MySQL و SQLite متصل کنید. در این مقاله ما SQLite را انتخاب می‌کنیم به دلیل سادگی‌.

درون Gemfile می‌نویسیم

gem "sqlite3"

 

درون config/database.yml می‌نویسیم

 

development:
  adapter: sqlite3
  database: db/db_dev_db.sqlite3
  pool: 5
  timeout: 5000

 

بعد اجرا می‌کنیم

rake db:setup

 

Migration & Schema System

هر دیتابیس ساختار اطلاعات قابل ذخیره را توسط قواعد خشک و دقیق به نام اسکیما تعیین می‌کند. به طور مثال تعیین می‌کنیم که جدولی‌ از کاربران داریم و هر کاربر یک email از گونه String دارد.

Active Record Migrations به ما این اجازه رو میدن که Schema اطلاعاتمون رو کم کم و طی‌ زمان بسازیم. به این معنی‌ که در آینده میتونیم این Schema را تغییر بدیم.

برای شروع جدول کاربران را میسازیم. اول باید یک Migration جدید بسازیم


rails generate migration create_users_table

به این ترتیب که rails generate migration دستور بوده و باقی نام Migration است.

درون db/migrations/0000_create_users_table.rb خواهیم داشت:

class CreateUsersTable < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :email
      t.string :name
      t.timestamps
    end
  end
end

 

که دستور create_table جدولی‌ به نامه users می‌سازد و دستور t.string یک field به نامه email خواهد سخت.

حالا Migration را اجرا می‌کنیم.

rake db:migrate

 

هم‌اکنون دیتابیس ما ظاهری که Active Record انتظار دارد را دنبال می‌کند. پس شروع می‌کنیم به ساخت یک Active Record Model که با این جدول کاربران صحبت کند.

درون /app/models/user.rb می‌نویسیم.

class User < ActiveRecord::Base
end

 

و وارد کنسول Rails می‌شویم تا با Model جدیدمان کمی‌ کار کنیم.

bundle exec rails console -s

درون کنسول می‌نویسیم:

 

User.create first_name: "pooyan", last_name: "khosravi", email: "pekhee at gmail dot com"

این دستور یک کاربر برای ما سخته و شماره کاربری آن‌ را برمی‌گرداند. میتوانیم از دیتابیس آخرین کاربر را بگیریم.

User.last