0
response_with路由錯誤我有這種特殊情況下一個惱人的問題:與型號名稱
#Controller> api/albums_controller.rb
class Api::AlbumsController < ApplicationController
respond_to :json
def create
respond_with Album.create(params[:album])
end
end
正如你可以看到,這個控制器是下一個文件夾名稱「API」。該控制器連接到「artists_controller」控制器:
#routes.rb
namespace :api do
resources :artists do
resources :albums
end
end
所以我使用jQuery調用該函數:
$.ajax({
url: '/api/artists/1/albums',
method: 'POST',
dataType: 'json',
data: 'album[year]=2000&album[genre_id]=1&album[name]=FDFSD&album[artist_id]=1'
});
但是,當攢動我得到這個錯誤是成功的:
NoMethodError in Api::AlbumsController#create
undefined method `album_url' for #<Api::AlbumsController:0xc0ebdb4>
只有在專輯保存的情況下,如果有任何錯誤,ajax調用返回此內容,例如:
$.ajax({
url: '/api/artists/1/albums',
method: 'POST',
dataType: 'json',
data: 'album[year]=2000&album[genre_id]=1'
});
//Results
{"errors":{"name":["can't be blank"],"artist":["can't be blank"]}}
哪個是正確的,但我怎樣才能避免「ALBUM_URL」的錯誤?
我假設這個錯誤可能會發生,因爲我們在route.rb文件中使用這個控制器作爲資源,所以正確的路徑應該是類似「api_artists_album_url」的東西,但我該如何改變它到正確的變量?
我使用的寶石 '軌', '3.2.12'
感謝