Как сделать так, чтобы Rails routes.rb перенаправлял несколько путей к одному действию контроллера #?

Мне интересно, есть ли способ использовать «изобретательную маршрутизацию» в Rails, чтобы все маршруты указывали на одно действие контроллера #. Я хочу, чтобы React Router обрабатывал ссылки.

Я просмотрел https://guides.rubyonrails.org/routing.html#specifying-a-controller-to-use и обнаружил это Как использовать React Router поверх маршрутизатора Rails (без использования гема react-rails)?

Мой текущий файл routes.rb (это лучший способ добиться этого?):

Rails.application.routes.draw do
root to: "home#index"

  get 'games', to: 'home#index'
  get 'games/new', to: 'home#index'
  get 'games/:id', to: 'home#index'
  get 'games/:id/edit', to: 'home#index'

  namespace :api do
    resources :games
  end
end

person cineron    schedule 31.07.2019    source источник


Ответы (1)


  resources :games, controller: :home

Это предоставит вам необходимые пути + индекс. Пути будут

/games
/games/new
/games/:id
/games/:id/edit

все указывают на HomeController

И тогда вы все еще можете иметь маршруты с именами

ОБНОВЛЕНИЕ: обновленный ответ на основе комментария от op.

person Int'l Man Of Coding Mystery    schedule 01.08.2019
comment
Спасибо! Чтобы было ясно, мой пример кода работает, я использую React для доступа к конечной точке /api/games/ API, созданной в Rails. Я бы хотел, чтобы /games/ был точкой входа для HTML-запросов, которые React Router будет обрабатывать оттуда. Есть 2 набора дорожек. Мне просто интересно, есть ли способ сделать выражения get [path] to: [controller#action] чище (или находчивее). - person cineron; 01.08.2019
comment
Я обновлю ответ тем, что, как мне кажется, вы говорите: D - person Int'l Man Of Coding Mystery; 01.08.2019