[英]Printing Ruby inside of javascript using haml
我在使用haml時在我的JavaScript代碼中嘗試打印一些ruby變量時遇到了問題。
我有一個名為“ @matrix”的變量,它是一個矩陣。 我需要做的是打印給定矩陣的每一行,最后得到如下所示的內容:
['Year', 'Sales', 'Expenses'],
['2004', 1000, 400],
['2005', 1170, 460],
['2006', 660, 1120],
['2007', 1030, 540]
問題是我似乎無法使用我的ruby變量獲得正確的格式。 我在stackoverflow中也看到過類似的問題,但是即使嘗試了不同的方法來實現我所閱讀的內容,我也沒有成功。
我的實際代碼如下:
['Year', 'Sales', 'Expenses'],
#{
for i in 0..@matrix.row_count
puts @matrix.row(i).to_a.to_s+","
end
}
這應該給我matriz的每一行(這正是我想要的),但是我得到的錯誤是for循環無法識別,而打印的實際上是0..66 。
任何解決該問題的方法將不勝感激。 謝謝。
您的問題是您不希望打印這些字符串。 您想對它們進行插值 。 一個for循環只返回它正在循環的集合,這就是為什么您得到“ 0..66”的原因。 您需要返回您正在打印的字符串的東西。
代替for循環,請嘗試如下操作:
(0..@matrix.row_count).map {|i| @matrix.row(i).to_a.to_s }.join(',')
(順便說一句,我不建議使用Array#to_s
的輸出。它的格式以前已經更改過,並且可以再次更改。我會考慮使用更多類似"[#{matrix.row(i).to_a.join(',')}]"
,您可以在其中明確指定數組的格式。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.