在所有路线中添加国家/地区代码

时间:2018-04-02 10:23:58

标签: ruby ruby-on-rails-4

是否可以在URL的原点后添加/in。现在,网址为xxx.com/home/index,希望它像xxx.com/in/home/index一样。 这是基于国家/地区的变化,适用于印度/in,适用于美国/us等。

我在路线中添加范围,

scope ":country_code" do
  root 'home#index'
  get 'page/about'
end

如何导航根路径并更改所有代码以更改路径? 还有其他解决方案吗?

由于

2 个答案:

答案 0 :(得分:0)

是的,有可能。根据您的要求,我们需要{}} {}},因为我们会在路线中使用country_code

首先,您需要在id中创建 root action,如:

controller

然后我们需要定义类似的路线:

root_to "welcome#index"

现在,当xyz/:country_code/member_action => "welcome#search", as: "my_action" root_path index行动WelcomeController收到任何请求时,我们会检查请求IP国家/地区详细信息。

您可以使用https://ipinfodb.com/api获取请求IP的国家/地区详细信息

最后,在获得country_code后,将请求重定向到此处的下一个操作路径,例如:redirect_to my_action_path("IN")

答案 1 :(得分:0)

如果你像这样传递module: false,你可以定义动态命名空间内的所有路由将使用正常路由:

Rails.application.routes.draw do
  ['us','uk','in'].each do |country_code|
    namespace country_code.to_sym, module: false do
      resources :users

      root 'home#index'
      get 'page/about'
    end
  end