我已经设法让 Flickr API 使用 RoR 和 Flickr gem。但是,在显示照片之前,它似乎返回了很多与照片相关的信息(作为字符串),例如
[#<Flickr::Photo:xxxxxx @rotation="0", @client=#<Flickr:xxxx
@host="http://api.flickr.com", @activity_file="flickr_activity_cache.xml",
@api="/services/rest", @api_key="xxxxxxxxx">, @api_key="xxxxxx", @title="JAPAN",
@id="xxxx".....etc
以上只是返回的信息片段,其中一些信息替换为 xxxx。如何删除此信息?
控制器如下:
class FlickrController < ApplicationController
def flickrsearch
flickr = Flickr.new
if params[:text].nil?
#render :text => '<h2>Please enter a search string</h2>'
else
begin
@photos = flickr.photos(:text => params[:text], :per_page =>'10', :sort => 'relevance')
render "display"
end
end
end
观点如下:
<div class="flickr">
<table>
<%= @photos.each do |p| %>
<td>
<%= image_tag(p.sizes[0]['source']) %><br>
<%= p.title %>
</td>
<% end %>
</table>
</div>
Flickr gem 中的“Flickr”类中的“photos”方法如下:
def photos(*criteria)
photos = (criteria[0]) ? photos_search(criteria[0]) : photos_getRecent
# At this point, search criterias with pet_page => has structure
# {"photos => {"photo" => {...}}"}
# While per_page values with > 1 have
# {"photos => {"photo" => [{...}]}"}
collection = photos['photos']['photo']
collection = [collection] if collection.is_a? Hash
collection.collect { |photo| Photo.new(photo['id'], @api_key) }
end
我是一个新手,如果这是一个简单的问题,我很抱歉。我有一种感觉,这与我没有指向数组中的正确位置有关?
谢谢。