2010-07-26 10 views
54
class Post < ActiveRecord::Base 
end 

post = Post.new 

Jak mogę ocenić, czy "post" jest nowym modelem, który nie został pobrany z bazy danych? new_record? metodaJak sprawdzić, czy model jest nowy, czy nie?

+1

Proszę użyć wcięcia 4 miejsca, aby zaznaczyć tekst jako kod. –

+0

Och, dziękuję bardzo! – Croplio

Odpowiedz

37

ActiveRecord wraca true jeśli obiekt nie został jeszcze zapisany.

+4

new_record? jest wymieniony w powiązanej dokumentacji Sądzę, że miałeś na myśli to: http://api.rubyonrails.org/classes/ActiveRecord/Persistence.html –

+1

@jcarlson Spójrz na kiedy opublikowałem moją odpowiedź i rozważ, że dokumentacja mogła się zmienić w w międzyczasie. –

6

można użyć post.persisted? a także, jeśli to return false dochodowe rekord w nowej

persisted?

+1

To jest bardziej proste, ponieważ z 'new_record?' Musisz przetestować dla 'false', aby wiedzieć, czy zapis został zapisany. W moim umyśle, ale dla każdego! –

Powiązane problemy