javascript / jquery&中的相对URL铁轨3

时间:2011-12-25 03:52:43

标签: javascript jquery ruby-on-rails ruby ruby-on-rails-3

我为每条记录都有这样的网址:

http://localhost:3000/items/3/stuff.json
http://localhost:3000/items/1/stuff.json
http://localhost:3000/items/4/stuff.json
http://localhost:3000/items/9/stuff.json

http://localhost:3000/items/3/等网页上,链接的JavaScript文件的代码如下:

$.getJSON(document.URL+'/stuff.json');

这允许我抓取JSON文件而不用担心记录ID号。

问题出现在以下网址上:

http://localhost:3000/items/3/news
http://localhost:3000/items/3/photos

这样:

$.getJSON(document.URL+'/stuff.json');

将寻找:

http://localhost:3000/items/3/news/stuff.json

当然不存在。

我应该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

您可以使用

$.getJSON("../stuff.json", function(data){



});

如果当前网址是“http:// localhost:3000 / items / 3 / anything”

编辑:

$.getJSON(document.URL.match(/\/items\/\d+\//) + "stuff.json", function(data){



});

如果所有网址都是http://host/items/id/anything

的形式

答案 1 :(得分:0)

如果这个JS完全由Rails呈现(即它不是来自Asset Pipeline的东西),那么你可以使用路由助手,如下所示:

<script>$.getJSON("<%= item_news_stuff_path(3, :format => :json) %>")</script>

这将生成资源的相对根路径,正确构建路由。