2014-01-15 15 views
1

我一直在嘗試在使用haml時打印一些ruby變量,在我的javascript代碼中出現問題。使用haml在JavaScript中打印Ruby內容

我有一個名爲「@matrix」的變量,它是一個矩陣。我需要做的是打印每個給定矩陣的行,並與東西最後看起來像下面這樣:

['Year', 'Sales', 'Expenses'], 
    ['2004', 1000, 400], 
    ['2005', 1170, 460], 
    ['2006', 660, 1120], 
    ['2007', 1030, 540] 

的問題是,我似乎不能用我的紅寶石變量來得到正確的格式。我在stackoverflow中看到了一些類似的問題,但是即使嘗試了不同的方式來實現我讀過的東西,但我還沒有成功。

我的實際代碼如下:

['Year', 'Sales', 'Expenses'], 
    #{ 
    for i in [email protected]_count 
     puts @matrix.row(i).to_a.to_s+"," 
    end 
    } 

應該給我的matriz每一行(這是我想要的東西,),但我得到的錯誤是循環不被識別,並且打印的內容實際上是0..66

如何解決這個問題的任何方法將不勝感激。 謝謝。

+0

過去我不得不做的事情是使用幫助器來格式化數據並返回JS喜歡的值。 – omarvelous

+0

我希望得到像我所嘗試的那樣簡單的東西:/如果這是不可能的,我想我將不得不使用一個幫手 – Waclock

回答

0

你的問題是你不想打印那些字符串;你想插值它們。 for循環只是返回它正在循環的集合,這就是爲什麼你得到「0..66」。你想要的東西返回你正在打印的字符串。

而是一個for循環中,嘗試這樣的事情:。

([email protected]_count).map {|i| @matrix.row(i).to_a.to_s }.join(',') 

(順便說一句,我不推薦使用Array#to_s像這樣的輸出信息,其格式之前已經發生變化,它可以再次改變我會考慮使用更類似"[#{matrix.row(i).to_a.join(',')}]"的東西,其中您明確指定了陣列應如何格式化。)

+0

感謝您的迴應查克,我試過這個,但我得到錯誤的數字參數(0表示1)** – Waclock

+0

@Waclock:哎呀,用括號代替矩陣thingy的parens。這可能與此有關。 – Chuck

+0

它應該是parens我相信(這是一個矩陣類的方法)。我試過它在軌道控制檯(做@ matrix.row(1)),它的工作沒有問題) – Waclock