Rails 带有 www 的路由约束有效,没有 www 的域无效

Rails Routes Constraints with www is working, domain without www not working

通过另一个 Rails-Engine 项目,我能够更好地处理约束。我试着把我以前的工作拿来修改成这个。

我有一个运行子域的应用程序,www/admin 受到限制,但客户可以使用其他所有内容。我用的更简单:

constraint => "www"

由于上述方法在没有 www 且仅 example.com 的 URL 上不起作用,我正在使用以下脚本:

我把文件放在app/constraints/frontend_router.rb

    class FrontRouter
        def self.matches?(request)
            request.subdomain.present? && request.subdomain != "www" && request.subdomain != ENV['DEPLOYED_DOMAIN']
        end
    end

在路由文件的顶部,添加所需的文件。 www 似乎有效,但 example.com(没有 www)无效。

require 'frontend_router'

constraints(FrontRouter) do
    # Landing Page
    scope module: "website" do
        root 'page#index'
    end
end

我正在使用的插件正在路由所有内容。它可能会覆盖我试图做的事情。但我发现这是我最好的个人选择:在引擎上使用欢迎和分离的仪表板视图。

 gem 'mtwarden', '~> 2.2'

如果大家有更好的解决方案,我愿意尝试并测试。但这将完成我需要完成的工作。