2013-01-18 30 views
0

我已驗證Merchant.find_all正確返回具有許多元素的枚舉數。但是,當我運行下面的代碼時,我得到一個空白頁。爲什麼內聯模板不會反覆調用並輸出「hello」一堆?Sinatra內嵌模板不被稱爲

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 

我從來沒有真正嘗試過這一點,但我認爲這是可行的......

+0

是啊,我只是有一個關於如何ERB作品的誤解 – Jonah