Вы получаете эту ошибку, потому что Sinatra принимает возвращаемое значение маршрута и преобразует его в строку, прежде чем пытаться отобразить его клиенту.
Я предлагаю вам использовать представление / шаблон для достижения вашей цели:
# file: <your sinatra file>
get '/show' do
@comments = Comment.all
erb :comments
end
# file: views/comments.erb
<% if !@comments.empty? %>
<ul>
<% @comments.each do |comment| %>
<li><%= comment.body %></li>
<% end %>
</ul>
<% else %>
Sorry, no comments to display.
<% end %>
Или добавьте ваши комментарии к строковой переменной и верните ее, когда закончите:
get '/show' do
comments = Comment.all
output = ""
comments.each do |comment|
output << "#{comment.body} <br />"
end
return output
end