如何在Rails中打印数组?

时间:2013-10-22 14:12:09

标签: ruby-on-rails ruby arrays ruby-on-rails-3

我是Rails的新手,我使用的是Ruby版本1.9.3和Rails版本3.0.0。

我想在Rails中打印一个数组。我该怎么做?

例如,我们必须使用print_r在PHP中打印数组:

<?php

$a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));
print_r ($a);

?>

输出:

<pre>
Array
(
    [a] => apple
    [b] => banana
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)
</pre>

如何在Rails中打印数组?

4 个答案:

答案 0 :(得分:10)

您可以使用inspect之类的:

@a = ['a', 'b']
p @a #['a', 'b']

或者:

p @a.inspect #"[\"a\", \"b\"]"

答案 1 :(得分:2)

您需要使用awesome_print gem。

require 'awesome_print'

hash = {:a=>1,:b=>2,:c => [1,2,3]}

ap hash

输出:

{
    :a => 1,
    :b => 2,
    :c => [
        [0] 1,
        [1] 2,
        [2] 3
    ]
}

答案 2 :(得分:0)

你在这里有几个选择。我假设你在ERB模板中这样做。

这会将数组转换为YAML并将其打印出来并包含在<pre>标记

<%= debug [1,2,3,4] %> 

这将以可读的Ruby语法格式化它:

<pre><%= [1,2,3,4].inspect %></pre>

有关详细信息,请查看“Debugging Rails Applications”。

答案 3 :(得分:0)

这取决于你想要使用数组的内容。

要在视图中盲目输出数组,必须在视图中,您应该使用debuginspect,如下所示:

<%= @array.inspect() %>

<%= debug @array %>

但是,如果你想迭代一个数组,或者做explode()之类的事情,那么你将更适合使用Ruby数组函数。