W klasach definiujących modele możemy określać zachodzące pomiędzy modelami relacja (jeden do jednego, jeden do wielu itp.), wymagania dotyczące rekordów (np. długość hasła) czy funkcje zwrotne (ang. ), wywoływane m.in. przy zapisie danych do bazyDokumentacja Ruby on Rails: ActiveRecord::Callbacks. Można też dodawać inną funkcjonalność, jak np. metoda sprawdzająca na podstawie imienia czy użytkownik jest mężczyzną czy kobietą:
class User < ActiveRecord::Base # ... def is_male? name.last != "a" # jeżeli tak, zwróci true end # ... end
Widoki – ActionView, RHTML Klasa ActionView odpowiedzialna za widoki definiuje wiele pomocniczych metod, pozwalających generować kod HTML, np.: link_to "Usuń użytkownika", { :action => "destroy", :id => @user.id }, :confirm => "Jesteś pewien?" form_tag({:controller=>'user', :action=>'search'}, :method=>'get') Widoki pisze się w plikach *.html.erb, które zawierają przemieszany kod HTML i Ruby. Tak przygotowany szablon interpretowany jest przez program ERB (Ruby Embedded), który działa podobnie do parsera PHP. Dzięki temu kod HTML może być np. generowany w pętli. Jeden widok odpowiada zazwyczaj jednej akcji kontrolera. Widoki na ogół osadzane są w jednolitym dla strony szablonie (ang.