繁体   English   中英

Rails - HTTParty 如何访问参数?

[英]Rails - HTTParty How to access params?

所以我使用一个非常标准的设置来测试 HTTParty:

  def index

     @hotels = HTTParty.get('https://api-v3.igdb.com/games/',
        :headers =>{"Content-Type" => "application/json", "user-key" => "super_secret_key"},
        :query => {:fields => "name",  :limit =>  "20"})
  end

这有效。 我拿回了 20 件物品。

我在视图中遍历它们,如下所示:

<% @hotels.each do |game| %>
    <p>game name is:<%= game.to_query %> </p>
<% end %>

这导致浏览器内的 html 文件如下:(仅采用 1 个示例)

游戏名称为:id=69359&name=Sunken+Secrets

显然,我想像普通参数一样呈现名称和 ID,就像在 Rails 中通常一样:<=% game.name %> 例如

//更新:

当我运行 byebug 时,我为@hotels 返回以下结果

>     <HTTParty::Response:0x7ff207cd0270 parsed_response=[{"id"=>69359, "name"=>"Sunken Secrets"}, {"id"=>69530, "name"=>"Dai Senryaku VII:
> Modern Military Tactics"}, {"id"=>81332, "name"=>"Stick Fighter II"},
> {"id"=>50649, "name"=>"Who Wants to be a Millionaire: 1st Edition"},
> {"id"=>22618, "name"=>"Battleground 7: Bull Run"}, {"id"=>104945,
> "name"=>"Woodpunk"}, {"id"=>91579, "name"=>"Racing Live"},
> {"id"=>22636, "name"=>"Call of Duty: Black Ops - Annihilation"},
> {"id"=>88041, "name"=>"Highway Wars"}, {"id"=>31258,
> "name"=>"Slymes"}, {"id"=>90512, "name"=>"Asian Riddles 4"},
> {"id"=>105842, "name"=>"Robots Vs Zombies: Transform To Race And
> Fight"}, {"id"=>85450, "name"=>"Transformers Prime: The Game"},
> {"id"=>104748, "name"=>"Space station - build your own ISS"},
> {"id"=>111593, "name"=>"Oppai Puzzle"}, {"id"=>42610,
> "name"=>"Hebereke's Popoon"}, {"id"=>105254, "name"=>"Codenames"},
> {"id"=>91756, "name"=>"Aban Hawkins & the 1000 SPIKES"}, {"id"=>2057,
> "name"=>"Out Run 2019"}, {"id"=>93987, "name"=>"Pi Story"}],
> @response=#<Net::HTTPOK 200 OK readbody=true>,
> @headers={"date"=>["Wed, 25 Dec 2019 18:04:48 GMT"],
> "content-type"=>["application/json;charset=utf-8"],
> "content-length"=>["1259"], "connection"=>["close"],
> "set-cookie"=>["__cfduid=de604d7fc295fb415e047830a8ce304281577297088;
> expires=Fri, 24-Jan-20 18:04:48 GMT; path=/; domain=.igdb.com;
> HttpOnly; SameSite=Lax"], "x-count"=>["124726"], "via"=>["1.1 vegur"],
> "cf-cache-status"=>["DYNAMIC"],
> "strict-transport-security"=>["max-age=15552000; preload"],
> "x-content-type-options"=>["nosniff"], "expect-ct"=>["max-age=604800,
> report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""], "server"=>["cloudflare"], "cf-ray"=>["54acbd52ae077cb2-MUC"]}>

如果有办法做到这一点,有什么想法吗?

提前致谢!

我希望 HTTParty 返回一个哈希值。 因此 IMO 这应该工作:

<% @hotels.each do |game| %>
    <p>game name is: <%= game['name'] %> </p>
<% end %>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM