2011-11-19 92 views
1

我一直在嘗試在我的應用中使用較短的URL的二級域(即app.com/name將重定向到myawesomeapp.com/items/name)。Rails 3基於第二域約束的路由

使用約束我有這個,到目前爲止,但它不工作:

(請注意,我只是在一瞬間我的臨時服務器上測試它,所以我指定的子域以及)

match "/:name" => "items#show_by_name", :constraints => {:host => "app.com", :subdomain => "staging"} 

而在items_controller中。

def show_by_name 
    @item = Item.find_by_name(params[:name]) 
    render :action => "show" 
end 

當我將它推送到heroku並試用它 - 沒有任何反應。我剛剛得到一個「這個頁面無法找到」的錯誤。我重新啓動了應用程序,以確保它沒有那樣。

任何想法?

回答

1

我想你是混淆主機與域名。

request.host  #=> staging.app.com 
request.domain #=> app.com 
request.subdomain #=> staging 
+0

即使當我指定所有這些東西它不起作用? – Elliot

+0

嘗試僅使用主機:':constraints => {:host =>「staging.app.com」}' –