/e-6ren">
gpt4 book ai didi

ruby-on-rails - 范围为 ":locale"和浅层嵌套资源的 Rails 路由

转载 作者:行者123 更新时间:2023-12-04 05:21:57 25 4
gpt4 key购买 nike

所以我想让 Rails 为我处理特定于语言环境的路由,例如

/en/companies
/nl/companies

这适用于路线定义:
scope "(:locale)", :locale => /en|nl/ do
resources :companies
end

但与此同时,公司拥有浅层嵌套资源,如下所示:
scope "(:locale)", :locale => /en|nl/ do
resources :companies, :shallow => true do
resources :pages
end
end

这允许像 /en/companies/1/pages 这样的路径,但不是像 /en/pages/1/edit 这样的路径.由于“浅”也剥离了路径的“语言环境”部分,看来我被 /pages/1/edit?locale=en 卡住了.有没有办法让 Rails 以我可以使用的方式处理带有语言环境的浅层嵌套资源 /en/pages/1/edit ?

最佳答案

是的!我在 the API documentation 中找到了答案.魔法在:shallow_path关键字,在上面的例子中它的工作原理是这样的:

scope :path => "(:locale)", :shallow_path => "(:locale)", :locale => /en|nl/ do
resources :companies, :shallow => true do
resources :pages
end
end

现在一个 URL 像 /en/pages/1/edit完美运行!

关于ruby-on-rails - 范围为 ":locale"和浅层嵌套资源的 Rails 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6422677/

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