Встроенный шаблон Синатры не вызывается
Я подтвердил, что Merchant.find_all
правильно возвращает перечислитель со многими элементами. Однако, когда я запускаю следующий код, я получаю пустую страницу. Почему встроенный шаблон не вызывается повторно и выводит "привет" несколько раз?
require 'sinatra'
require 'sinatra/reloader'
require 'sequel'
require_relative 'config/init'
require_relative 'merchant'
get '/' do
Merchant.find_all.each do |m|
erb :layout
end
""
end
__END__
@@ layout
hello
1 ответ
Решение
Вы возвращаете пустую строку из блока маршрута. Вернуть результат erb. Если вы хотите рендерить этот вид несколько раз, сохраните результат каждого erb
в строковый буфер и вернуть это.
get '/' do
result = ''
Merchant.find_all.each do |m|
result += erb(:layout)
end
result
end
Я никогда не пробовал, но думаю, что это сработает...