2011-10-06 67 views
0

我想打印在Ruby中的HTML表格on Rails的打印HTML標記Ruby on Rails的

<h1>Welcome</h1> 
<p> 
<%=  sprintf print_series(@myTable) %> 
</p> 

*助手:

module WelcomeHelper 
    def print_series(graph)  
     res = '<table border="2">' 
     graph.each { 
      |point| 
      res = res + new_row(new_cell(point["date"]) + new_cell(point["value"])) 
     } 
     res << '</table>' 
     return res.html_safe 
    end 
end 

似乎沒有任何工作,我不斷收到HTML標籤已經逃脫了,這樣我就可以在瀏覽器上「查看」HTML而不是看到表格了。 我在做什麼錯?

+0

主持人......如何編輯我的帖子,所以它看起來正常??? – eran

+0

縮進代碼行4個或更多空格。查看我的編輯。 –

+0

非常感謝。抱歉,添麻煩了。 – eran

回答

2

Rails 3會自動在輸出中轉義html。

有很多方法可以告訴它不要爲選定的輸出執行此操作。

這裏有一個Railscast這個話題

新增降的sprintf:

<%= print_series(@myTable) %> 
+1

這是真的。我認爲問題在於你的'sprintf'方法從'print_series.html_safe'輸出中輸出了一個** new **字符串。我不知道你爲什麼需要'sprintf',但它應該沒有它。看起來你已經從更多的「僵化」語言中繼承了一些習慣,你一定要更多地瞭解ruby語法的靈活性 - 許多事情在ruby中是隱含的,更不用說rails了。關於紅寶石,我會推薦閱讀「充分接近的rubyist」一書,它非常好。 –

+0

@m_x,正確,'sprintf'返回一個新的(不安全的)字符串在@Eran書上的好建議。我還建議Railscast系列,它們非常出色。 –

+0

謝謝拉里,使用「原料」,它工作正常。 – eran