如何在 Rails 中通过 jQuery 调用 JSON 文件?

Posted

技术标签:

【中文标题】如何在 Rails 中通过 jQuery 调用 JSON 文件?【英文标题】:How to call JSON files via jQuery in Rails? 【发布时间】:2017-02-01 17:18:09 【问题描述】:

我正在使用 Mapplic jQuery 插件在 Rails 中构建一个简单的寻路应用程序。

脚本需要一个它调用的 JSON 文件,如下所示:

$('#floor-5').mapplic(
  source: 'floor-5.json',
  height: 1000,
  minimap: false,
  sidebar: true,
  hovertip: true,
  developer: false,
  maxscale: 3
);

我在app/assets/json/floor-5.json 中有 JSON 文件。

我认为 jQuery 脚本正在尝试使用 AJAX,我知道这在 Rails 中存在问题。

JS 和 CSS 文件都通过资产管道正确调用,但我不确定如何通过资产管道正确访问所需的 JSON 文件。

JSON 文件然后通过 AJAX 加载它想要使用的图像:


    "mapwidth":"1080",
    "mapheight": "1000",
    "levels": [
    
        "id" : "floor-5",
        "map" : "/assets/images/floor-5.png",
        "minimap" : "/assets/images/floor-5.png"
        
    ]

如何协调这些 AJAX 调用与资产管道?

【问题讨论】:

AJAX 对 Rails 有什么问题?很难理解这个问题。您是否尝试在静态文件中引用 javascript 对象? NickM,我很难理解这个特定的 jQuery 插件是如何引用文件的,而且在 Rails 资产管道中对我来说没有意义。所以这让我更难提出一个问题。 jQuery 在视图中使用 AJAX 引用源 JSON 文件,而 JSON 文件再次使用 AJAX 引用图像文件。这对我来说是一个陌生的结构,我无法完全理解它。我无法让它按预期的方式工作,这应该会导致图像加载到 DOM 中,并在图像上方放置一些额外的控件。 更新:已解决。问题不是 AJAX,而是无效的 JSON。我使用了这个 JSON 验证器并修复了错误:jsonformatter.curiousconcept.com 【参考方案1】:

您的 JSON 可能无效。如果您的资产都位于 Rails 资产管道中的正确文件夹中,Rails 使用 AJAX 查找这些文件应该没有问题。但是,如果您有无效的 JSON,它将引发与根本无法加载文件相同的错误。使用 JSON 验证器,看看是否能解决问题:https://jsonformatter.curiousconcept.com/

【讨论】:

以上是关于如何在 Rails 中通过 jQuery 调用 JSON 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在rails中通过tcp发送值?

Ajax在Struts2中通过jquery调用

如何在 Ruby on Rails 中通过关联订购 has_many?

如何在 ruby​​ on rails 中通过 websocket 发送保持活动的数据包

如何在引导程序中通过ajax调用显示数据表中的数据

在 Rails 中通过其 belongs_to 关系查询记录