Czy ogólnie lepszym sposobem (i dlaczego) jest weryfikacja atrybutów w modelu lub definicji bazy danych?Ruby on Rails: Czy lepiej jest sprawdzić w modelu lub w bazie danych?
Dla (trywialny) Przykład:
W modelu użytkownika:
validates_presence_of :name
porównaniu do migracji:
t.string :name, :null => false
Z jednej strony, włączając go w wydaje się, że baza danych większa gwarancja na skradanie jakichkolwiek złych danych. Z drugiej strony uwzględnienie go w modelu sprawia, że rzeczy stają się bardziej przejrzyste i łatwiejsze do zrozumienia poprzez zgrupowanie go w kodzie z resztą f zatwierdzenia. Rozważyłem także robienie obu, ale wydaje się to zarówno nie-SUCHEGO, jak i mniej konserwowalnego.
Uderzyłeś mnie do tego przez 20 sekund;) – Aurril
Zgadzam się z potwierdzeniem ograniczeń w obu miejscach (używam PostgreSQL i wtyczki sexy_pg_constraints http://github.com/maxim/sexy_pg_constraints), ale to nie jest do końca prawda sprawdzanie poprawności twoich modeli zapisuje zapytanie DB. Na przykład 'validates_uniqueness_of' musi wykonać zapytanie DB. –