2012-06-09 11 views
7

Pracuję przez Rails dla Zombies, kochający Pomocny poradnik i zainteresowanych innymi przy okazji ....wiele validations szyn 3 (szyny dla zombie; 2: 3)

Mój problem jest następujący.

Tutorial zapytać mnie

„Czy zarówno wyjątkowość i obecności walidację nazwy zombie w jednej linii, przy użyciu nowej składni”

Próbowałem następujące polecenia w konsoli na RfZ;


class Zombie < ActiveRecord::Base 
    validates_uniqueness_of :name, validates_presence_of :name 
end 

// I //

class Zombie < ActiveRecord::Base 
    validates Name :uniqueness, :presence => true 
end 

Tutorial prosi o nowych Rails 3 składni. Rozumiem, że nowa składnia pozwala na wiele argumentów walidacyjnych w jednym wierszu. Bardzo ładnie, ale jak mam to zrobić? Z góry dziękuję wszystkim.

-Ryan

Odpowiedz

9

Twoja druga próba jest bliżej, ale nie do końca poprawne. Spróbuj tego:

class Zombie < ActiveRecord::Base 
    validates :name, :uniqueness => true, :presence => true 
end 

FYI, starszy składnia byłoby:

class Zombie < ActiveRecord::Base 
    validates_presence_of :name 
    validateS_uniqueness_of :name 
end 
+0

Rob, ty rock, dzięki. Całkowicie doceniam to, że działało, rozumiem też, dlaczego. –

+0

Bez problemów! Uwaga: powinieneś ogólnie zaakceptować odpowiedź, która spełnia twoje pytanie, aby twoje pytanie zostało zamknięte, i aby osoby wyszukujące Stack Overflow mogły znaleźć odpowiedź, jeśli mają podobne pytanie. –

+0

OK. Pozwól mi poświęcić chwilę, aby to zrozumieć, abym mógł zaakceptować twoją odpowiedź Rob, dzięki jeszcze raz. –

5
validates :name, :presence => true, :uniqueness => true 
+1

Dlaczego ta odpowiedź została odrzucona? To była pierwsza odpowiedź na pytanie AFAIK –

0

Można również spróbować to.

class Zombie < ActiveRecord::Base 
     validates :name, presence: true, uniqueness: true 
    end