Ruby on rails Ruby Flickr API和Photoset
我正在从flickr检索个人的照片集(相册)列表。如何从这个散列数组中提取id,然后使用它列出每个相册中的图像?我仍在学习Ruby,对此感到非常困惑。我很感激任何朝着正确方向的努力 当我尝试添加Ruby on rails Ruby Flickr API和Photoset,ruby-on-rails,ruby,arrays,hash,flickr,Ruby On Rails,Ruby,Arrays,Hash,Flickr,我正在从flickr检索个人的照片集(相册)列表。如何从这个散列数组中提取id,然后使用它列出每个相册中的图像?我仍在学习Ruby,对此感到非常困惑。我很感激任何朝着正确方向的努力 当我尝试添加set.each do。。对@photosets块执行任何操作-我得到的“每个”都没有方法错误 photos\u controller.rb require 'flickraw' class PhotosController < ApplicationController def index
set.each do。。对@photosets
块执行任何操作-我得到的“每个”都没有方法错误
photos\u controller.rb
require 'flickraw'
class PhotosController < ApplicationController
def index
FlickRaw.api_key = ENV['FlickRaw_api_key']
FlickRaw.shared_secret = ENV['FlickRaw_shared_secret']
@photosets = flickr.photosets.getList(user_id: '67921947@N02').each do |set|
set
end
end
end
你快到了。如果您想在index.html.erb
上输出照片集及其各自照片的数据,可以尝试以下操作:
@photosets = flickr.photosets.getList(user_id: '67921947@N02').each do |set|
set["photos"] = flickr.photosets.getPhotos(photoset_id: set["id"])
end
这将输出如下内容:
{
"id" =>"72157633435549025",
"primary" =>"8720558709",
"secret" =>"d6f79d3d3c",
"server" =>"7395",
"farm" =>8,
"photos" =>"8",
"videos" =>0,
"title" =>"Poetry Project",
"description" =>"",
"needs_interstitial" =>0,
"visibility_can_see_set" =>1,
"count_views" =>"4",
"count_comments" =>"0",
"can_comment" =>0,
"date_create" =>"1368044794",
"date_update" =>"1368044886"
"photos" => [{"id" => "2484",
"secret"=>"123456",
"server"=>"1",
"title"=>"my photo",
"isprimary"=>"0"},
{"id" => "2483",
"secret" => "123456",
"server" => "1",
"title" => "flickr rocks",
"isprimary" => "1"}]
},
{ # etc... }
我不确定你所说的集合是什么意思。。任何
都不起作用,因为我在你的代码中看不到设置
。我想出来了-这是我使用的代码。这允许您提取有关个人相册(也称为“photoset”)的信息,然后获取每个photoset中的照片
控制器
需要“flickraw”
class PhotosController < ApplicationController
def index
FlickRaw.api_key = ENV['FlickRaw_api_key']
FlickRaw.shared_secret = ENV['FlickRaw_shared_secret']
@photosets = flickr.photosets.getList(user_id: '67921947@N02').map do |set|
flickr.photosets.getPhotos(photoset_id: set['id']).photo.map do |photo|
FlickRaw.url_b(photo)
end
end
end
end
class photocontroller
查看
<% @photosets[0].each do |image| %>
<%= image_tag image %>
<% end %>
这对我来说很有意义。。。但是我得到了这个错误未定义的方法“[]=”,你知道代码的哪个部分触发了它吗?在getList
或getPhoto
期间,我在set[“photos”]之后注释掉了所有内容,没有出现错误。我需要做什么特别的事情来解析JSON吗?我使用的是Rails 4.1,不需要对JSON做任何事情。你能在设置[“照片]
后发布你所有的代码吗?
class PhotosController < ApplicationController
def index
FlickRaw.api_key = ENV['FlickRaw_api_key']
FlickRaw.shared_secret = ENV['FlickRaw_shared_secret']
@photosets = flickr.photosets.getList(user_id: '67921947@N02').map do |set|
flickr.photosets.getPhotos(photoset_id: set['id']).photo.map do |photo|
FlickRaw.url_b(photo)
end
end
end
end
<% @photosets[0].each do |image| %>
<%= image_tag image %>
<% end %>