gpt4 book ai didi

ruby-on-rails - Rails 3 路由和多个域

转载 作者:行者123 更新时间:2023-12-03 23:04:52 24 4
gpt4 key购买 nike

我的应用程序允许人们创建投资组合。我希望他们能够将他们的域连接到他们的投资组合。

所以 somedomain.com 会显示/portfolio/12,someotherdomain.com 会显示/portfolio/13 等等。但我不想要重定向。我希望用户在浏览器 url 中看到 somedomain.com。

我怎么做?

好的,我找到了这个解决方案:

match "/" => "portfolio#show", 
:constraints => { :domain => "somedomain.com" },
:defaults => { :id => '1' }

因为我没有很多自定义域,所以现在很好,但问题是 - 如何使这个动态,从 db 读取域和 id 数据?

最佳答案

好的,假设您拥有 yourdomain.com并将其用作您的应用程序的主页。以及任何其他域名,如 somedomain.net映射到投资组合页面。

首先,在您的 routes.rb你需要 catch yourdomain.com并将其映射到您主页所在的任何位置,以便它从其他人群中脱颖而出。

root :to => "static#home", :constraints => { :domain => "yourdomain.com" }

然后您需要捕获任何域上的任何其他根并将其转发到您的 PortfoliosController
root :to => "portfolios#show"

请记住,仅当前一行无法匹配时才会检查此行。

然后在您的 PortfoliosController通过其域而不是 id 查找请求的投资组合。
def show
@portfolio = Portfolio.find_by_domain(request.host)

end

当然,您可能想从 ActiveRecord::RecordNotFound 中解救异常(exception),以防域不在您的数据库中,但让我们将其留作另一个讨论。

希望这可以帮助。

关于ruby-on-rails - Rails 3 路由和多个域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6054668/

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