ActiveRecord este componenta fundamentală din framework-ul Ruby on Rails responsabilă pentru stratul de date (ORM – Object-Relational Mapping). O clasă moștenită din ApplicationRecord este mapată automat la un tabel din baza de date (fără a fi nevoie de mapare XML sau configurare manuală a coloanelor).
Model ActiveRecord cu validări și asocieri relaționale
# Fișier: app/models/articol.rb (mapat automat la tabelul SQL 'articole')
class Articol < ApplicationRecord
# Asocieri între tabele:
belongs_to :autor, class_name: "User"
has_many :comentarii, dependent: :destroy
# Validări automate de integritate a datelor:
validates :titlu, presence: true, length: { minimum: 5, maximum: 150 }
validates :continut, presence: true
validates :status, inclusion: { in: %w[ciorna publicat arhivat] }
# Domenii de interogare reutilizabile (Scopes):
scope :publicate, -> { where(status: "publicat").order(created_at: :desc) }
end
# Utilizare în controllere sau consola Rails:
# 1. Creare și validare sigură:
articol = Articol.new(titlu: "Ghid Ruby on Rails", continut: "Text complet...", status: "publicat")
if articol.save
puts "Articol salvat cu succes în baza de date cu ID-ul #{articol.id}!"
else
puts "Erori de validare: #{articol.errors.full_messages.join(', ')}"
end
# 2. Interogare curată prin interfața fluidă ActiveRecord:
articole_recente = Articol.publicate.limit(10)