簡體   English   中英

使用haml在javascript內打印Ruby

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM