2

目前正在开发用于显示特定地点信息的 RoR 移动 Web 应用程序。

我们称这些地方为“装置”。每个安装至少有一个“场地”,它是安装的一个特定实例。例如,一个装置可以是一个城市公园,其对应的场地之一可以是音乐会或活动期间的公园。如果此示例令人困惑,请忽略,这无关紧要。

这些安装及其相应场所的数据作为 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

现在我确信最有可能使用如下参数传递这些值:

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

但如果可能的话,我想以以前的方式设置我的 URL。我需要让 URL 对用户友好,让用户自己输入,并让 QRC 代码直接指向特定的安装和相应的地点。

如果无法执行类似 www.mobwebapp.com/INSTALL/VEN/index 的操作,那么是否可以为每个场地设置子域,然后将该场地作为字符串拉入?

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

4

1 回答 1

2

如果你把它放在你的config/routes.rb文件中,那么你将能够使用你想要的 URL 模式:

match ':installation/:venue/index', :controller => :venue, :action => :index
于 2012-02-17T23:12:27.783 回答