特定Ruby on Rails路线deliema

问题描述:

目前正在开发一个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这样的事情,那么是否可以为每个场地设置子域名,然后将该场地作为字符串拉入?

任何帮助表示赞赏!谢谢!

如果你把这个在您的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