section id="rails.ActiveRecord" xreflabel="ActiveRecord"
Jak jsem již zmínil dříve, komponenta která je zodpovědná za přístup k datům v RoR se jmenuje Active Record a je reprezentována třídou ActiveRecord (gem activerecord).
Tato zajišťuje vše od přístupu k databázi až k zpřístupnění dat z této databáze ve formě Ruby objektů.
Active Record klade na strukturu a pojmenování objektů v databázi určité nároky, které si dále popíšeme. Některé z nich lze obejít, a jiné jsou důležité pro správné fungování Active Record.
WORKING: Editovat.
Pro přístup k datům se používá ActiveRecord. Pokdu tedy definujeme tabulku lidí, vytvoříme model podle vzoru.
class Clovek < ActiveRecord::Base
Uvedený model předpokládá že máme do inflektoru zavedenou výjimku
Inflector.inflections do |inflect|
inflect.irregular 'clovek', 'lide'
endJak je vidět, model pro tabulku lidí se jmenuje Clovek, ale samotná tabulka pak lide. Pokud potřebujeme v modelu určit jiné jméno tabulky, můžeme tak učinit příkazem set_table_name
class Clovek < ActiveRecord::Base
set_table_name 'tab015'
endActiveRecord kladou na naše datové tabulky další omezení, která musíme dodržet. Jedním z nejdůležitějších je typ a název klíčového sloupce. ActiveRecord předpokládá že tento klíčový sloupec existuje, je typu Integer a jmenuje se id. Pokude se tento sloupec v naší tabulce jmenuje jinak, oznámíme to ActiveRecord příkazem
set_primary_key 'myid'
FIXME:
belongs_toFIXME:
belongs_to :employee, :foreign_key => "pin"
has_oneFIXME:
has_manyFIXME:
has_many :offices, :foreign_key => "city_id"
has_and_belongs_to_manyFIXME:
validates_presence_ofFIXME:
validates_acceptance_ofFIXME:
validates_uniqueness_ofFIXME:
