我为每条记录都有这样的网址:
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
当然不存在。
我应该如何解决这个问题?
答案 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>
这将生成资源的相对根路径,正确构建路由。