gpt4 book ai didi

ruby-on-rails - 带有语言环境的 Ruby on Rails 路由

转载 作者:行者123 更新时间:2023-12-04 17:13:01 25 4
gpt4 key购买 nike

我正在使用本指南:http://edgeguides.rubyonrails.org/i18n.html

我想要什么:
/about转至 pages#about使用默认语言环境 en .
/en/about转至 pages#about语言环境为 en .
/es/about转至 pages#about语言环境为 es .

我得到了什么:
/about转至 root_path语言环境为 about .
/en/about转至 pages#about语言环境为 en .
/es/about转至 pages#about语言环境为 es .

这是一些代码:

# config/routes.rb
match '/:locale' => 'pages#news'

scope "(:locale)", :locale => /en|es/ do
match '/abcd' => 'pages#abcd'
match '/plan' => 'pages#plan'
match '/about' => 'pages#about'
match '/history' => 'pages#history'
match '/projects' => 'pages#projects'
match '/donate' => 'pages#donate'
match '/opportunities' => 'pages#opportunities'
match '/board' => 'pages#board'
end

root :to => "pages#news"

# app/controller/application_controller.rb
before_filter :set_locale

def set_locale
# if params[:locale] is nil then I18n.default_locale will be used
I18n.locale = params[:locale]
end

def default_url_options(options={})
{ :locale => I18n.locale }
end

如果我正确阅读指南,第 2.5 节说我应该能够访问 /about并让它加载默认语言环境。

从 2.5:
# config/routes.rb
scope "(:locale)", :locale => /en|nl/ do
resources :books
end

With this approach you will not get a Routing Error when accessing your resources such as http://localhost:3001/books without a locale. This is useful for when you want to use the default locale when one is not specified.

最佳答案

你的 routes.rb 中的第一行是一个包罗万象的路由

match '/:locale' => 'pages#news'

它应该是文件中的最后一行,紧跟在根路由之后。

关于ruby-on-rails - 带有语言环境的 Ruby on Rails 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4487234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com