2012-09-28 16 views
24

Şu anda yalnızca API uç noktaları tarafından yönetilen bir Artwork modelim var. (Bunun neden önemli olduğunu kısaca göreceksiniz). Bunlar API bitiş noktaları benim routes.rb dosyasında şöyle bildirilir:Raylar 3: answer_with undefined URL helper ile ilgili hatalar

namespace :api do 
    namespace :v1, :defaults => { :format => :json } do 
    resources :artworks, :only => [:create, :destroy, :index, :show, :update] 

Bu aşağıdaki yolları ile sonuçlanır:

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} 

İlgili kod:

class Api::V1::ArtworksController < Api::V1::ApiController 
    def create 
    artwork = Artwork.create(artwork_params) 

    respond_with artwork 
    end 

Sorun

Ne zaman #create başarılı, respond_with bobinleri: HTTP Yer artwork_url olmak için

`undefined method `artwork_url' for #<Api::V1::ArtworksController:0x007fea1b4c67f8>` 

Bu yardımcı bekliyor. Bunun yerine api_v1_artwork_url'u kullanmayı nasıl söylerim? URL yardımcıyı takabilir miyim?

cevap

35

Bu durumda, yanıtlayan için ad alanını belirtmeniz gerekir.

respond_with :api, :v1, artwork 
+1

sadece bu sorunla karşılaşırsanız ve ben ad eklemek zorunda neden biraz kafam karıştı .. resmi belgelere bulamıyorum (ya da belki bunu gözardı) – giosakti

+0

Sen istersiniz: Deneyin polimorfik yollar hakkında bilgi edinin: http://ryanbigg.com/2012/03/polymorphic-routes/, http://api.rubyonrails.org/classes/ActionDispatch/Routing/PolymorphicRoutes.html – rossta

+0

Çalışmıyor. sadece "undefined method" api_RESOURCE_url "değerini alır" # – ajbraus