У меня есть модель Artwork
, которая теперь обрабатывается только конечными точками API. (Вы поймете, почему это важно в ближайшее время). Эти конечные точки API объявляются так в моем файле routes.rb
:
namespace :api do
namespace :v1, :defaults => { :format => :json } do
resources :artworks, :only => [:create, :destroy, :index, :show, :update]
Это приводит к следующим маршрутам:
api_v1_artworks GET /api/v1/artworks(.:format) api/v1/artworks#index {:format=>:json}
POST /api/v1/artworks(.:format) api/v1/artworks#create {:format=>:json}
api_v1_artwork GET /api/v1/artworks/:id(.:format) api/v1/artworks#show {:format=>:json}
PUT /api/v1/artworks/:id(.:format) api/v1/artworks#update {:format=>:json}
DELETE /api/v1/artworks/:id(.:format) api/v1/artworks#destroy {:format=>:json}
Соответствующий код:
class Api::V1::ArtworksController < Api::V1::ApiController
def create
artwork = Artwork.create(artwork_params)
respond_with artwork
end
Проблема
Когда #create
преуспеть, respond_with
захлопывает:
`undefined method `artwork_url' for #<Api::V1::ArtworksController:0x007fea1b4c67f8>`
Ожидается, что помощником для HTTP-местоположения будет artwork_url
. Как я могу вместо этого использовать api_v1_artwork_url
? Могу ли я использовать хелпер URL-адреса?