У меня есть маршрут объекта в маршрутизаторе (с использованием ember-данных со стандартным бэкэндом REST) с connectOutlets
, который просто десериализует и загружает объект и подключает его к розетке.
# inside router
action: Ember.Route.extend
route: 'object/:object_id'
connectOutlets: (router, object) ->
unless object.get('isLoaded') # What goes here to tell if the object wasn't found?
#
# handle this case (e.g., redirect)
#
else # otherwise proceed as normal
router.get('applicationController').connectOutlet('object', object)
Когда я перехожу к localhost/#object/object_that_doesnt_exist
, маршрутизатор десериализует URL-адрес, пытается загрузить объект (журналы сервера показывают HTTP-запрос GET для localhost/objects/object_that_doesnt_exist), получает 404 и вместо этого создает новый объект с идентификатором, установленным на object_that_doesnt_exist
.
Я хочу обнаружить это и разобраться с делом. Прямо сейчас я проверяю свойство isLoaded
, которое различает существующие и несуществующие модели, но я не уверен, что это лучший способ.
В идеале должен быть метод, похожий на new_record?
в Rails.