MusicBrainz 网络服务 Ruby Rails 包装问题

MusicBrainz web service on Ruby on Rails wrapper questions

我正在尝试使用以下音乐包装器

https://github.com/localhots/musicbrainz

自述文件对我来说太简单了,我不确定如何使用这个服务包装器。首先,readme中提到了以下关于配置的信息

MusicBrainz.configure do |c|
  # Application identity (required)
  c.app_name = "My Music App"
  c.app_version = "1.0"
  c.contact = "support@mymusicapp.com"

  # Cache config (optional)
  c.cache_path = "/tmp/musicbrainz-cache"
  c.perform_caching = true

  # Querying config (optional)
  c.query_interval = 1.2 # seconds
  c.tries_limit = 2
end

我应该把这些信息放在哪里?在配置文件夹下的单独文件中?我应该将其复制粘贴到我的某些配置文件中的某处吗(environment.rb?)。

配置完成后。我是否可以访问自述文件中提供的所有方法?我试过这个例子:

@suggestions = MusicBrainz::Artist.search("Jet")

但它 return 是一个散列,而不是一个对象

[{:name=>"Jec", :sort_name=>"Jec", :weight=>0, :desc=>nil, :type=>nil, :mbid=>"a8e34279-511f-4d8b-b40e-be503faec482"}, {:name=>"JDT", :sort_name=>"JDT", :weight=>0, :desc=>nil, :type=>"Group", :mbid=>"f10c42bc-0679-46ea-ac3d-2b446088c659"}, {:name=>"Jat", :sort_name=>"Jat", :weight=>0, :desc=>nil, :type=>"Group", :mbid=>"9b00250c-0d4d-4bdc-bd8c-37ca6cef8707"}, {:name=>"Jeti", :sort_name=>"Jeti", :weight=>0, :desc=>nil, :type=>"Group", :mbid=>"0076ec01-5abb-4904-97c6-643b4bf58fd5"}, {:name=>"JeV", :sort_name=>"JeV", :weight=>0, :desc=>nil, :type=>nil, :mbid=>"238e1ea2-f267-47f3-9f24-9a55e312b05a"}, {:name=>"Jei", :sort_name=>"Jei", :weight=>0, :desc=>nil, :type=>nil, :mbid=>"ddb7dde4-2cf1-43b2-95a6-bb60adcd52de"}, {:name=>"Jeto", :sort_name=>"Jeto", :weight=>0, :desc=>nil, :type=>nil, :mbid=>"bef1576f-6db7-473b-8fbf-359326bf48e0"}, {:name=>"Jest", :sort_name=>"Jest", :weight=>0, :desc=>nil, :type=>nil, :mbid=>"ba3e36b1-21c7-466e-83fa-fef43e2b9731"}, {:name=>"DJet", :sort_name=>"DJet", :weight=>0, :desc=>nil, :type=>nil, :mbid=>"174961e4-2ccb-4c66-aa2d-d86ab244cfc5"}, {:name=>"Jek", :sort_name=>"Jek", :weight=>0, :desc=>nil, :type=>"Person", :mbid=>"900a8e05-ff80-4f8d-a559-98368ed7d5a3"}]  

我不知道该怎么办。谁能给我更多关于如何使用此资源的指导?谢谢。

把它放在你想要的任何地方,就在你使用它之前(可能不是最好的地方)或在初始化器上(继续尝试先这条路径)

是的,大多数 API 包装器 return 哈希或包装哈希的对象,那是因为它们只是将 JSON(或 XML)转换为 Ruby。顺便说一句,你得到的是一个哈希数组,循环遍历它们,你将获得你需要的信息:

@suggestions.each do |suggestion|
  puts suggestion[:name]
end

你用它做什么取决于你。