【问题标题】:Rails JSON API: Updating picture in view doesn't showRails JSON API:在视图中更新图片不显示
【发布时间】:2017-03-09 04:35:30
【问题描述】:

Rails API 的新手。我想在我的视图中显示更新图片。我从中提取的 JSON 数据可以在 here

找到

我的模特

def self.get_api_info

helio_api = "http://www.lmsal.com/hek/her?cosec=2&cmd=search&type=column&event_type=fl,bu&event_starttime=2017-03-01T00:00:00&event_endtime=2017-03-08T00:00:00&event_coordsys=helioprojective&x1=-1200&x2=1200&y1=-1200&y2=1200"
request_to_helio_api = Net::HTTP.get(URI(helio_api))
JSON.parse request_to_helio_api
end

我的控制器

def index
@helio_info = HelioApi.get_api_info
end

我的观点

<img src="<%= @helio_info["gs_thumburl"] %>" />

【问题讨论】:

  • 试试&lt;img src="&lt;%= @helio_info["result"]["gs_thumburl"] %&gt;" /&gt;
  • 我认为错误在于我如何处理 API 的模型。但是,当我尝试这样做时,我得到了“没有将字符串隐式转换为整数”

标签: ruby-on-rails json hash


【解决方案1】:

您正在访问的 API 的结构是

{
  "result": [
    { "gs_thumburl": "some_string", ... },
    { "gs_thumburl": "some_string", ... },
    { "gs_thumburl": "some_string", ... }
  ]
}

所以要从@helio_infosome_string,您需要获取结果数组@helio_info["result"],然后获取该数组中的一个元素@helio_info["result"][0],最后获取url @helio_info["result"][0]["gs_thumburl"]。 Ruby 表示不会将 String 隐式转换为 Integer,因为您尝试使用字符串键访问数组,并且它需要整数键。

【讨论】:

  • 谢谢!这是对正在发生的事情的一个很好的了解,并且真的很有帮助!
【解决方案2】:

感谢帕万的洞察力。这是我最终做的:

模型保持不变

控制器

def index
@helio_info = HelioApi.get_api_info['result']
puts "!!!!!!!!!!!!!!*********!!!!!!!!!********!!!!!"
puts @helio_info

结束

查看

<% @helio_info.each do |info| %>
<% if info['gs_thumburl'] != "" %>
    <img src="<%= info['gs_thumburl']%>"/>
<%end%>

【讨论】:

    猜你喜欢
    • 2023-02-23
    • 1970-01-01
    • 1970-01-01
    • 2020-09-24
    • 1970-01-01
    • 2017-10-19
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    相关资源
    最近更新 更多