Je cherche de l'aide pour détruire une ressource imbriquée dans Merb. Ma méthode actuelle semble presque correcte, mais le contrôleur déclenche un InternalServerError lors de la destruction de l'objet imbriqué.Je détruis des ressources imbriquées de façon reposante
vient ici tous les détails concernant la demande, ne pas hésiter à demander plus :)
Merci,
Alex
Je suis en train de détruire une des ressources imbriquées en utilisant la route suivante dans
router.resources :events, Orga::Events do |event|
event.resources :locations, Orga::Locations
end
Qui donne dans la requête jQuery (delete_ m ODE est une implémentation de .ajax $ avec "SUPPR"):
$.delete_("/events/123/locations/456");
Du côté du contrôleur de localisation, j'ai:
def delete(id)
@location = Location.get(id)
raise NotFound unless @location
if @location.destroy
redirect url(:orga_locations)
else
raise InternalServerError
end
end
Et le journal:
merb : worker (port 4000) ~ Routed to: {"format"=>nil, "event_id"=>"123", "action"=>"destroy", "id"=>"456", "controller"=>"letsmotiv/locations"}
merb : worker (port 4000) ~ Params: {"format"=>nil, "event_id"=>"123", "action"=>"destroy", "id"=>"456", "controller"=>"letsmotiv/locations"}
~ (0.000025) SELECT `id`, `class_type`, `name`, `prefix`, `type`, `capacity`, `handicap`, `export_name` FROM `entities` WHERE (`class_type` IN ('Location') AND `id` = 456) ORDER BY `id` LIMIT 1
~ (0.000014) SELECT `id`, `streetname`, `phone`, `lat`, `lng`, `country_region_city_id`, `location_id`, `organisation_id` FROM `country_region_city_addresses` WHERE `location_id` = 456 ORDER BY `id` LIMIT 1
merb : worker (port 4000) ~ Merb::ControllerExceptions::InternalServerError - (Merb::ControllerExceptions::InternalServerError)