我正在寻求帮助破坏 Merb 中的嵌套资源。我当前的方法似乎接近正确,但控制器在嵌套对象的销毁过程中引发了InternalServerError 。
这里有关于请求的所有细节,不要犹豫,要求更多:)
谢谢,
亚历克斯
我正在尝试使用以下路线销毁嵌套资源
router.resources :events, Orga::Events do |event|
event.resources :locations, Orga::Locations
end
在 jQuery 请求中给出(delete_ 方法是 $.ajax 的实现,带有“DELETE”):
$.delete_("/events/123/locations/456");
在位置控制器方面,我有:
def delete(id)
@location = Location.get(id)
raise NotFound unless @location
if @location.destroy
redirect url(:orga_locations)
else
raise InternalServerError
end
end
和日志:
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)