Неопределенный метод model_name_url, если нет шоу - PullRequest
0 голосов
/ 02 октября 2018

Я сделал контроллер под названием 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`?

1 Ответ

0 голосов
/ 02 октября 2018

Я не думаю, что есть способ заставить путь и помощники URL работать без указания маршрута в маршрутах, как, например, когда вы используете какую-то другую утилиту для маршрутизации URL-адресов на контроллеры.Однако, если вы получите route.rb, чтобы указать, как маршрутизировать URL на ваш API, он будет работать.

resource :car, controller: 'api'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...