如何将URL路由设置为其他子域

时间:2012-09-07 18:22:14

标签: ruby-on-rails routing subdomain

我可以使用哪种路径路径从非子域名页面链接到子域名页面?

我已按照Railscast#123为我的网站添加了子域名。

我对网站所做的主要更改是将每个博主与一个独特的子域匹配。

的routes.rb

match '', to: 'blogs#show', constraints: {subdomain: /.+/}

blogs_controller.rb

def show
@blog = Blog.find_by_subdomain!(request.subdomain)
end

博客/ index.html.erb

<%= link_to blog.name, root_url(subdomain: blog.subdomain) %>

因此,博客应用http://www.blog.com为每种类型的博主都设有子域名,例如盗版http://www.pirate.blog.com和忍者http://www.ninja.blog.com

我目前在我的主页(没有子域名)和我的博客页面(包含子域名)中呈现_article.html.erb部分。我可以使用哪种路线将主要主页(没有子域)链接到嵌套在博主的子域中的特定文章,例如http://www.ninja.blog.com/articles/ninja-stars

目前,通过部分article路径链接到忍者明星文章将引导我:

http://www.ninja.blog.com/articles/ninja-stars

来自忍者子域名页面(这是我想要的),但是要

http://www.blog.com/articles/ninja-stars

来自主页面,没有子域名(不是我想要的)。

有没有办法通过像article(subdomain: article.blog.subdomain)之类的东西强制通往特定子域的路径?我希望每篇文章链接都转到一个subdomained页面。

1 个答案:

答案 0 :(得分:0)

为了使文章的所有链接都包含作者博客的子域名,我使用了

article_url(article, subdomain: article.blog.subdomain)

作为我的道路。