2012-02-17 92 views
2

目前正在開發一個RoR移動Web應用程序,用於顯示有關特定位置的信息。特定Ruby on Rails路線deliema

讓我們稱這些地方的'裝置'。每個安裝至少有一個「場地」,這是安裝的特定實例。因此,舉例來說,安裝可以是城市公園,並且在音樂會或活動期間其對應的場地之一可以是公園。如果這個例子令人困惑,無視,那沒什麼關係。

這些安裝及其相應場所的數據作爲json對象託管在Amazon Web Service S3上。我使用HTTParty來讀取AWS S3 json對象。我目前正在讀他們像這樣:

在應用控制器我有:

inlcude HTTParty 
base_uri 's3.amazonaws.com/our_bucket' 
before_filter :set_up_httparty 

def set_up_httparty 
    @installation = "INSTALLATION" 
    @venue = "VENUE" 
    @dir_url = "/#{@installation}/#{@venue}/" 
end 

在我相應的控制器,在那裏我得到不同的信息,我有:

response = 
    ApplicationController.get("#{@dir_url}/ConstantUniqueName.json") 

目前我硬編碼INSTALLATION和VENUE值以指向一組特定的文件夾。這個偉大的工程,但我需要能夠在這些值才能從URL像這樣:

www.themobilewebapp.com/INSTALLATION/VENUE/index 

現在,我相信這是最有可能有可能在這些值來傳遞的,象這樣PARAMS:

www.themobilewebapp.com/index?installtion=INSTALLATION&venue=VENUE 

但是,如果可能的話,我想設置我的URL是以前的方式。我需要讓用戶自己輸入網址並讓QRC代碼直接指向特定的安裝和相應的場所。

如果無法做到像www.mobwebapp.com/INSTALL/VEN/index這樣的事情,那麼是否可以爲每個場地設置子域名,然後將該場地作爲字符串拉入?

任何幫助表示讚賞!謝謝!

回答

2

如果你把這個在您的config/routes.rb文件,那麼你就可以使用所需的URL模式:

match ':installation/:venue/index', :controller => :venue, :action => :index 
+0

感謝您的答覆,但是這不是我想要的,雖然。我沒有特定場地的控制器,我只想以數據的形式閱讀安裝/場地。因此,我希望將/:installtion /:場所/索引指向一個完全獨立的控制器,其操作是索引,然後使用該「場所」數據在該控制器中的AWS上讀取特定文件。 – Gowiem 2012-02-20 18:20:51

+1

上述路線適用於涵蓋所有安裝和場地的單個控制器。當請求'/ INSTALLATION/VENUE/index'時,'VenuesController#index'被調用'params'設置''installation'和'venue'。然後,您可以使用給定的參數進行AWS查找並提交結果。 – 2012-02-20 22:49:19

+0

好吧,我會給你一個鏡頭。如果一切都解決了,那麼我很抱歉如此迅速地解散它。 :) – Gowiem 2012-02-21 14:25:03