NoMethodError после запуска успешных "создать" действий
я отправляю запрос post в мой API, который отлично работает, он создает новую запись. Однако после создания записи я получаю эту ошибку в журнале сервера
NoMethodError (undefined method `device_url' for #<Api::V1::DevicesController:0x007fa2f5dde5d8>):app/controllers/api/v1/devices_controller.rb:14:in `create'
Это мое действие создания
def create
respond_with Device.create(params[:device])
end
все мои ресурсы находятся в пространстве имен под Api#V1, вот мой файл маршрутов
# Api ('/api')
namespace :api do
# Version 1 ('/api/v1')
namespace :v1 do
# Locations ('/api/v1/locations')
resources :locations
# Videos ('/api/v1/videos')
resources :videos
# Devices ('/api/v1/devices')
resources :devices
end
end
1 ответов
для запроса HTML POST после успешного создания объекта respond_with перенаправляет на путь объекта, т. е. здесь он будет эквивалентен чему-то вроде
redirect_to Device.create(params[:device])
со ссылкой device_url. Но поскольку у вас есть namespaced :devices в ваших маршрутах, вам нужно указать, что к вашему respond_with вызову, который будет
respond_with :api, :v1, Device.create(params[:device])