簡體   English   中英

在軌道上的 ruby 上沒有將字符串隱式轉換為 integer

[英]No implicit conversion of string into integer on ruby on rails

我試圖找出這個問題:“沒有將字符串隱式轉換為整數”

問題出在這一行 <% if coin == x["symbol"] %>

編碼:

<% for x in @coins %>
    <% for coin in @my_coins %>
        <% if coin == x["symbol"]%>
            <%= x["name"]%>
        <%end%>
    <%end%>
<%end%>

變量

class HomeController < ApplicationController
  def index
    require 'net/http'
    require 'json'
    @url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?start=1&limit=100&CMC_PRO_API_KEY=MyKey'
    @uri = URI(@url)
    @response = Net::HTTP.get(@uri)
    @coins = JSON.parse(@response)
    @my_coins = ["BTC", "XRP", "ADA", "ETH", "USDT"]
  end
  def about
  end 
  def lookup
  end
end

API 的第一行和第一個例子:


"data":
[
{
"id":1,"name":"Bitcoin",
"symbol":"BTC",
"slug":"bitcoin",
"num_market_pairs":9676,
"date_added":"2013-04-28T00:00:00.000Z",
"tags":["mineable","pow","sha-256","store-of-value","state-channels","coinbase-ventures-portfolio","three-arrows-capital-portfolio","polychain-capital-portfolio"],
"max_supply":21000000,
"circulating_supply":18629531,
"total_supply":18629531,"platform":null,"cmc_rank":1,"last_updated":"2021-02-15T15:54:02.000Z",
"quote":{"USD":{"price":47907.843633498785,
"volume_24h":79376349219.00912,
"percent_change_1h":-0.13222586,
"percent_change_24h":-1.5128616,
"percent_change_7d":10.59948497,
"percent_change_30d":28.8994407,
"market_cap":892500658113.4182,
"last_updated":"2021-02-15T15:54:02.000Z"}}},


問題的根源在於x不是 hash。 我希望它是一個數組。

例如,這會給你同樣的錯誤:

[]["symbol"]

基本上,當x是一個數組時, []方法的輸入需要一個 integer,因此會嘗試將傳入的內容轉換為 integer。 轉換失敗時發生錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM