使用haml在javascript内部打印Ruby

使用haml在javascript内部打印Ruby,javascript,ruby-on-rails,ruby,haml,Javascript,Ruby On Rails,Ruby,Haml,在javascript代码中使用haml时,我在打印一些ruby变量时遇到了问题 我有一个叫做@matrix的变量,它是一个矩阵。我需要做的是打印给定矩阵的每一行,并以如下方式结束: ['Year', 'Sales', 'Expenses'], ['2004', 1000, 400], ['2005', 1170, 460], ['2006', 660, 1120], ['2007', 1030, 540] ['Year', 'Sales', 'Expenses

在javascript代码中使用haml时,我在打印一些ruby变量时遇到了问题

我有一个叫做@matrix的变量,它是一个矩阵。我需要做的是打印给定矩阵的每一行,并以如下方式结束:

  ['Year', 'Sales', 'Expenses'],
  ['2004',  1000, 400],
  ['2005',  1170, 460],
  ['2006',  660, 1120],
  ['2007',  1030, 540]
  ['Year', 'Sales', 'Expenses'],
  #{
    for i in 0..@matrix.row_count
      puts @matrix.row(i).to_a.to_s+","
    end
  }
问题是,我似乎无法使用ruby变量获得正确的格式。我在stackoverflow中看到了一些类似的问题,但是即使在尝试了不同的实现方法之后,我仍然没有成功

我的实际代码如下:

  ['Year', 'Sales', 'Expenses'],
  ['2004',  1000, 400],
  ['2005',  1170, 460],
  ['2006',  660, 1120],
  ['2007',  1030, 540]
  ['Year', 'Sales', 'Expenses'],
  #{
    for i in 0..@matrix.row_count
      puts @matrix.row(i).to_a.to_s+","
    end
  }
这应该给我矩阵的每一行,这正是我想要的,但是我得到的错误是for循环无法识别,而打印的实际上是0..66

对于如何解决这一问题的任何方法都将不胜感激。
谢谢。

您的问题是不想打印这些字符串;您希望对它们进行插值。for循环只返回它循环的集合,这就是为什么得到0..66。您需要返回正在打印的字符串的内容

不要使用for循环,请尝试以下操作:

(0..@matrix.row_count).map {|i| @matrix.row(i).to_a.to_s }.join(',')

顺便说一句,我不建议对这样的输出使用Arrayto_。其格式以前已更改,可以再次更改。我会考虑使用一些类似{矩阵}。您可以明确指定数组的格式化方式。

过去我需要做的是使用助手格式化数据并返回JS likes的值。我希望得到像我尝试的那样简单的结果:/如果不可能,我想我必须使用HelperHanks来响应Chuck,我尝试了这个,但是我得到了错误的0参数数1@Waclock:哎呀,矩阵的东西用括号代替了括号。这可能和这个有关,应该是帕伦斯,我相信这是一个类矩阵的方法。我在rails控制台上做了@matrix.row1的尝试,但没有使用problems@Waclock:是的,我就是这么说的。我不小心用了括号而不是括号,这就是导致你得到那个参数错误的原因。我自己从来没有使用过Ruby的Matrix类,所以我只是偏离了你的原始代码,错误地复制了它。我以为你的意思是相反的,哈哈,我的错,它确实起作用了!非常感谢你!