Rails - начинайте свой маршрут со второго элемента пути - PullRequest
0 голосов
/ 19 марта 2019

Есть ли в рельсах способ начать маршрутизацию со 2-й части пути url?

например localhost:3000/tenant_name/posts для resources:posts

tenant_name - это имя схемы в моей базе данных. Я хочу переключиться на соответствующего арендатора, используя tenant_name.

когда я запускаю это сейчас, получу No route matches [GET] "/tenant_name/posts"

Мне нужно посещать посты, даже если заменить "tenant_name" на любое tenant_name. Как это сделать?

1 Ответ

2 голосов
/ 19 марта 2019

Использование scope без каких-либо параметров и только имени области, просто изменит путь к ресурсам.

scope :sometext_here do
  resources :posts
end

Это будет генерировать URL-адрес, как -

Prefix Verb   URI Pattern                       Controller#Action
 posts GET    /sometext_here/posts(.:format)     posts#index
       POST   /sometext_here/posts(.:format)     posts#create
  post GET    /sometext_here/posts/:id(.:format) posts#show
       PATCH  /sometext_here/posts/:id(.:format) posts#update
       PUT    /sometext_here/posts/:id(.:format) posts#update
       DELETE /sometext_here/posts/:id(.:format) posts#destroy

Альтернативный способ его использования -

get '/:dynamic_text/posts' => 'posts#index', as: :all_posts

Так что его можно использовать как

all_posts_path(dynamic_text: "sometext_here")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...