この特定の状況で厄介な問題があります。
#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」を使用しています
ありがとう