0

我有一个将用于两家大公司的 Web 应用程序。该应用程序由一个主要的静态“公司网站”和应用程序本身组成。只有静态站点需要分开,并且在 10 个页面中只有 3 个需要是公司特定的。所以我有这个:

app/views/info (static area)
...about.html.erb
...company1_faq.html.erb
...company2_faq.html.erb
...company1_index.html.erb
...company2_index.html.erb
...company1_pricing.html.erb
...company2_pricing.html.erb
...privacy.html.erb
...license.html.erb
...terms.html.erb

我想按子域将它们拆分出来,然后基于子域重定向这些操作。但是,我也想从 URL 中删除子域,我不知道该怎么做。任何人都可以帮忙吗?

4

2 回答 2

1

可以通过Request对象访问子域

像这样:

request.subdomain

然后,您可以将部分放在不同的文件夹中

app/views/info/company1
app/views/info/company2

然后根据子域渲染它们。

<%= render "info/#{@subdomain}/faq" %>
于 2013-04-25T17:55:22.853 回答
1

Railscasts 一直是我的第一站,所以我确实按照 Ryan 的指示进行操作 ;-)

因为我只需要一个控制器,这就是我所做的其余部分,它工作得很好:

在顶部info_controller.rb

before_filter :redirect_to_subdomain_page, only: [:index, :about, :pricing, :faq]

然后在底部:

private

def redirect_to_subdomain_page
  render "#{request.subdomain}_#{params[:action]}"
end

完美的!它还保留了常规 URL。

于 2013-04-25T17:58:56.327 回答