我问这个问题前面,并认为这是固定的,但事实并非如此。 前一个问题在这里
我的问题是我想设置我的路线,这样,当我输入
本地主机:3000 /网站/管理
它应该重定向到
本地主机:3000 / EN /网站/管理
这里是我的routes.rb文件
scope ":locale", locale: /#{I18n.available_locales.join("|")}/ do
get "log_out" => "sessions#destroy", as: "log_out"
get "log_in" => "sessions#new", as: "log_in"
resources :sites, except: [:new, :edit, :index, :show, :update, :destroy, :create] do
collection do
get :home
get :about_us
get :faq
get :discounts
get :services
get :contact_us
get :admin
get :posts
end
end
resources :users
resources :abouts
resources :sessions
resources :coupons
resources :monthly_posts
resources :reviews
resources :categories do
collection { post :sort }
resources :children, :controller => :categories, :only => [:index, :new, :create, :new_subcategory]
end
resources :products do
member do
put :move_up
put :move_down
end
end
resources :faqs do
collection { post :sort }
end
root :to => 'sites#home'
match "/savesort" => 'sites#savesort'
end
match '', to: redirect("/#{I18n.default_locale}")
match '*path', to: redirect("/#{I18n.default_locale}/%{path}")
但截至目前,它重定向到/ 1个/ 1/1个/ 1/1个/ 1/1个/ 1/1个/ 1 /网站/管理(增加了一个直到浏览器抱怨)。
任何想法,为什么它不断添加/恩?
编辑:答案是伟大的,谢谢。 你能帮我诊断出根本途径?
root to: redirect("#{/#{I18n.default_locale}") # handles /
我知道重定向是寻找类似
redirect("www.example.com")
所以留下这部分
#{/#{I18n.default_locale}
该#{使用RUBYS串插,对不对? 我不知道那是什么{是尽管这样做。
然后我们有
/#{I18n.default_locale}
这也是使用字符串插值和打印出I18n.default_locale的价值?
希望这是有道理的,我真的很欣赏的帮助,我学习了很多东西。
编辑2:
我改了行从
root to: redirect("#{/#{I18n.default_locale}") # handles /
至
root to: redirect("/#{I18n.default_locale}") # handles /
但我不知道如果这就是正确的。 现在,我得到的错误
uninitialized constant LocaleController
我知道它越来越错误从根到:“区域#根”,但我认为在区域#将来自范围。
我会继续玩它,让你知道任何进展。
这里是一个新的链接到我的路线文件https://gist.github.com/2332198