Tengo un modelo Artwork
que solo está manipulado por los puntos finales API en este momento. (Verás por qué esto es importante en breve). Esos puntos finales de API se declaran como tal en mi archivo routes.rb
:Rails 3: responda_con errores en el ayudante URL indefinido
namespace :api do
namespace :v1, :defaults => { :format => :json } do
resources :artworks, :only => [:create, :destroy, :index, :show, :update]
Esto se traduce en las siguientes rutas:
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}
código relevante:
class Api::V1::ArtworksController < Api::V1::ApiController
def create
artwork = Artwork.create(artwork_params)
respond_with artwork
end
El problema
Cuando #create
tiene éxito, respond_with
ahoga:
`undefined method `artwork_url' for #<Api::V1::ArtworksController:0x007fea1b4c67f8>`
Se está esperando el ayudante para la ubicación de HTTP para ser artwork_url
. ¿Cómo le digo que use api_v1_artwork_url
en su lugar? ¿Puedo alias el URL helper?
acaba de encontrar este problema y estoy un poco confundido sobre por qué tenemos que añadir el espacio de nombres .. no se puede encontrar en la documentación oficial (o tal vez pasado por alto) – giosakti
Querrá lea sobre rutas polimórficas: http://ryanbigg.com/2012/03/polymorphic-routes/, http://api.rubyonrails.org/classes/ActionDispatch/Routing/PolymorphicRoutes.html – rossta
No funciona. solo obtiene el "método indefinido' api_RESOURCE_url 'para # " – ajbraus