Rails-从路径的第二个元素开始您的路线

时间:2019-03-19 04:52:03

标签: ruby-on-rails

rails中是否有一种方法可以从url路径的第二部分开始路由?

例如localhost:3000/tenant_name/posts的{​​{1}}

tenant_name是我数据库中架构的名称。我想使用tenant_name切换到相应的租户。

当我现在运行此命令时,它将获得resources:posts

即使将“ tenant_name”替换为任何tenant_name,我也需要访问帖子。

1 个答案:

答案 0 :(得分:2)

使用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")