меня раздражает вопрос с этой конкретной ситуации:Routing ошибка response_with с именем модели
#Controller> api/albums_controller.rb
class Api::AlbumsController < ApplicationController
respond_to :json
def create
respond_with Album.create(params[:album])
end
end
Как вы можете видеть, этот контроллер находится под именем папки «апи». Этот контроллер подключается к «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'
Благодарности