Ruby on Rails și ActiveRecord: Modele, Validări, Asocieri și Interogări ORM în Ruby

Ghid complet pentru ActiveRecord în Ruby on Rails: maparea obiect-relațională (ORM), asocieri has_many și belongs_to, validări declarative și interogări sigure fără SQL injectat.

Sintaxă
class Post < ApplicationRecord; has_many :comments; validates :title, presence: true; end

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)
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Ruby on Rails și ActiveRecord: Modele, Validări, Asocieri și Interogări ORM

Ai o nelămurire despre utilizarea comenzii Ruby on Rails și ActiveRecord: Modele, Validări, Asocieri și Interogări ORM sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.