【发布时间】:2018-05-21 15:16:38
【问题描述】:
让我们使用以下路由器:
Rails.application.routes.draw do
scope ":locale", locale: /en|nl/ do
get "/:slug", to: "pages#prefixed_action", constraints: { slug: /.*/ }
end
root to: "pages#simple_action"
get "/:slug", to: "pages#simple_action", constraints: { slug: /.*/ }
end
如果请求指定了语言环境,则作用域会捕获它并将其转发给pages#prefixed_action。如果不是,请求被转发到pages#simple_action。
我的问题是,如果我在浏览器中输入localhost:3000/en,它不会被范围捕获。我该如何安排呢?
Edit1:我希望将请求路由到“pages#prefixed_action”
Edit2:在代码示例中添加了root 声明
【问题讨论】:
-
除了下面@maicher 的精彩回答,我认为
constraints: { slug: /.*/ }子句是不必要的。
标签: ruby-on-rails ruby ruby-on-rails-4 routes