Więc tam jest
record.new_record?
Aby sprawdzić, czy coś jest nowe
Muszę sprawdzić, czy coś jest w ruchu.
record = some_magic
record.destroy
record.is_destroyed? # => true
Coś w tym stylu. Wiem, że zniszczenie zamraża obiekt, tak zamrożony? rodzaj działa, ale czy jest coś bezpośrednio do tego zadania?
ruby-on-rails
ruby
activerecord
Daniel Huckstep
źródło
źródło
object.destroyed?
DEPRECATION WARNING: You are passing an instance of ActiveRecord::Base to
istnieje?. Please pass the id of the object by calling
.id.
Record.exists?
specyfikacji kontrolera, ponieważ nie mogę ponownie załadować zniszczonego rekordu, aby sprawdzić, czy tak jestdestroyed?
. Ale jeśli mam zmienną instancji do sprawdzeniaassings
, mogę użyćdestroyed?
.Po prostu to zrób:
Szczegóły są tutaj ActiveRecord :: Persistence
źródło
To nastąpi bardzo szybko. W najnowszym poście Riding Rails jest napisane:
A więc proszę. Wkrótce!
źródło
Podczas gdy rekord został zniszczony? działa dobrze i zwraca prawdę lub fałsz, możesz również nieco WYSUSZIĆ i utworzyć warunek if w linii, którą wywołujesz w kontrolerze.
record = Object.find(params[:id]) if record.destroy ... happy path else ... sad path end
Uświadom sobie, że ten post jest trochę za późno w grze. Ale gdyby ktoś chciał o tym więcej dyskutować, jestem grą! Nota boczna: Miałem również walidację after_destroy na moim modelu i podczas gdy to działało, osobna metoda na coś takiego wydaje się przesadą;)
źródło
destroy
ning obiektu nie zwraca niczego poza wezwaniem dofreeze
(o ile wiem), więc myślę, żefrozen?
jest to najlepszy wybór. Inną opcją jest ratunek,ActiveRecord::RecordNotFound
jeśli zrobiłeś coś takiegorecord.reload
.Myślę, że taktyka Mike'a powyżej może być najlepsza lub możesz napisać opakowanie dla tych przypadków, o których mowa, jeśli chcesz zacząć „przyjmować założenia”.
Twoje zdrowie.
źródło
Nie wiedząc więcej o logice Twojej aplikacji, myślę, że to się zawiesiło? to najlepszy wybór.
Jeśli to się nie powiedzie, z pewnością możesz dodać atrybut „zniszczony” do swoich modeli, który wyzwalasz w wywołaniach zwrotnych i który możesz sprawdzić, jeśli chcesz uzyskać bardziej precyzyjne rozwiązanie.
źródło