Я сделал контроллер под названием api
, в котором у меня есть действия, которые возвращают данные.В приложении у меня также есть модель Car
и контроллер cars
(со всеми стандартными маршрутами), но я хочу переместить каждый URL-адрес, который я использую, в контроллер api
и удалить URL-адреса, которые у меня нетиспользовать из моего приложения.В случае контроллера cars
я использую только те URL-адреса, в которых возвращается json всех автомобилей или json конкретного автомобиля (т.е. что-то вроде index
и show
).
У меня проблема в том, что когда я использую json.jbuilder
для рендеринга списка автомобилей, я также хочу напечатать URL этих ресурсов (show
), поэтому, например, если у меня есть конечная точка /api/cars.json
, я используюследующие json.jbuilder
.
views / api / cars.json.jbuilder
json.array!(@cars) do |car|
json.extract! family_bond, :id, :name, :image, :description
json.url car_url(car, format: :json)
end
Но car_url
выдает ошибку, если я удаляю resource: car
изфайл маршрутов.Это очевидно, поскольку car_url
должен возвращать show
URL-адрес действия каждого автомобиля.
Поэтому мой вопрос следующий:
Если я создаю действие, чтобы показатьдетали автомобиля в контроллере API (например, что-то вроде /api/car.json?id=1
), как я могу сказать Rails использовать эту конечную точку вместо стандартной (show
), когда я использую метод car_url`?