簡體   English   中英

Rails 3 - 子域問題移至 Heroku

[英]Rails 3 - Subdomain Issue Moving to Heroku

我編寫了一個應用程序,它使用每個用戶帳戶的子域來隔離環境。 所有這一切都很好,除了我有一個問題。 我不能同時讓 www 和 "" 擁有與所有其他子域不同的根路徑。

對於所有帳戶子域,我有一個根頁面:

root :to => "applications#index"

我需要這是所有子域的根頁面,除了“”的空白子域,然后是“www”。 對於 www,我在路線上有這個:

constraints(:subdomain => "www") do
    root :to => "promos#index"
  end

我正在努力解決的問題,所以“”也將使用 promos#index 作為根路徑。 當它不是根路徑時,mywebsite.com 將它們發送到應用程序#index,這需要登錄。 我不希望用戶在第一次訪問時看到的東西。

無論如何修改此代碼以包含 mywebsite.com 以具有不同的根? 我嘗試過使用“”復制代碼之類的方法,但這往往會弄亂所有其他子域,無論順序如何。 以下是我的路線文件中的內容:

constraints(:subdomain => "www") do
    root :to => "promos#index"
  end  

  root :to => "applications#index"

您可以使用實現“匹配?”的 object 做一些真正的定制的東西。 如果您是客戶子域,我們將在下面設置 applications#index,如果您不是客戶子域,則將您發送到 promo#index

在您的路線中:

Yourapp::Application.routes.draw do
  constraints(SubDomain) do
    root :to => "applications#index"
  end
  root :to => "promo#index"
  ...
end

然后是子域匹配器文件:

配置/初始化程序/subdomain.rb

class SubDomain
  def self.matches?(request)
    case request.subdomain
    when 'www', '', nil, #admin/api/etc could also go here
      false
    else
      true
    end
  end
end

subdomain.rb 也可以存在於 lib 中(如果它正在自動加載)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM