2016-02-26 50 views
0

我不完全知道我在做什麼錯在這裏,但我的索引動作直接從數據庫中的每個記錄下返回一串信息:導軌 - Index操作顯示數據庫記錄下後

First Post!!! 

Hello. This is my first blog post 
[#<Post id: 1, user_id: nil, title: "First Post!!!", 
content: "Hello. This is my first blog post", created_at: "2016-02-26 20:51:57", 
updated_at: "2016-02-26 20:51:57">] 

的index.html

= for p in @posts 
    %h1 
    = p.title 
    %p 
    = p.content 
+1

在@ posts'中將'= for p改爲' - for @in @ posts' – BroiSatse

+0

謝謝!我知道我正在做一些愚蠢的事情...... –

+1

btw,建議在ruby中使用迭代器而不是'for'。 '@ posts.each do | p |'是可取的 –

回答

0

您的問題是,你正在評估和輸出的for,在HAML當您使用=這是相同的要在erb中使用<%= %>,這意味着您的代碼將在評估後輸出,這就是爲什麼您從數據庫中看到這些信息的原因。

爲了解決您的問題,只需使用haml中的「評估者」標籤即-它等同於erb中的<% %>,這意味着您的代碼將僅被評估,並且不會將任何信息打印到屏幕上。

另外,作爲一個建議在軌循環的對象時,不要使用for,使用迭代器一樣:@posts.each do |p|,而不是for循環。