Ruby on rails 路由范围(“区域设置”)错误
Rails 3.0.9 我根据 但那里的信息似乎并不完整。My routes.rb:Ruby on rails 路由范围(“区域设置”)错误,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,Rails 3.0.9 我根据 但那里的信息似乎并不完整。My routes.rb: Myapp::Application.routes.draw do scope "(:locale)", :locale => /ru|en/ do resources :pages, :only => [:show] ... end match '/:locale' => 'index#index', :locale => /ru|en/ root :t
Myapp::Application.routes.draw do
scope "(:locale)", :locale => /ru|en/ do
resources :pages, :only => [:show]
...
end
match '/:locale' => 'index#index', :locale => /ru|en/
root :to => 'index#index'
end
正如上面的docbylink所说,路由应该是/ru/。。。和/恩/。。。那么,如何从路由中获取:locale的值呢?params[:locale]为空
谢谢 对不起,这一定是一个评论,不是回答,但我无权评论 您在访问时是否得到空的
params[:locale]
,比如说,还是
当然,当点击
/
或/pages/1
时,if必须为空,但当点击/ru
时,if不应为空,/en
,/ru/pages/1等问题出现在open\u id\u身份验证插件中。移除它很有帮助。我刚刚尝试过,效果很好。尝试向application.html.erb
添加类似于locale:“
的内容,然后尝试不同的URL<代码>http://your.domain/ru
应该在每页上显示“locale:”ru“。你在尝试什么URL?my.domain/ru,my.domain/en。在两个参数中,[:locale]都为空。我想知道为什么,谷歌不知道这样的问题。可能是因为它是有效的:O)你肯定错过了其他东西,你上面引用的路线是好的。正如khustochka所说,在试图访问参数[:locale]
的地方查看代码,就像控制器一样,有助于发现问题。在所有情况下,/,/en,/ru/,/en/pages/o_respublike都是空的。我在这里找不到类似情况的主题。查看完整的routes.rb和控制器代码可能有助于回答这个问题。特别是如果您有一些自定义路由(可以覆盖后面的路由,例如,如果您在控制器中有类似match'/:id'=>“pages#show'
)或某些筛选器的内容,则更是如此