проблема в том, что вы пытаетесь вывести весь набор сегментов, но нет метода сериализации строк, поэтому вы получаете эту ошибку.
Попробуйте это:
app.rb
require 'rubygems'
require 'sinatra'
require 'aws/s3'
include AWS::S3
def s3_connect
Base.establish_connection!(
:access_key_id => 'THISISMYACCESSKEYITMAYNOTBETHEBESTBUTITISMINE',
:secret_access_key => 'HERPADERPSECRETKEYISSECRET'
)
end
get '/' do
s3_connect
@buckets = Service.buckets
erb :index
end
get '/bucket/:key' do
s3_connect
@bucket = Bucket.find(params[:key])
erb :bucket
end
Просмотр: index.erb
<h1>Buckets</h1>
<ul>
<% @buckets.each do |b| %>
<li><a href='/bucket/<%= b.name %>'><%= b.name %></a> (<%= b.objects.length %> objects)</li>
<% end %>
</ul>
Вид: bucket.erb
<h1>Bucket: <%= @bucket.name %> Objects</h1>
<% @bucket.objects.each do |obj| %>
Object: <%= obj.key %> <%= obj.about['content-length'] %> bytes<br/>
<% end %>