0

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

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

例如,我们必须使用print_rPHP 来打印一个数组:

<?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

4 回答 4

11

你可以inspect像这样使用:

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

或者:

p @a.inspect #"[\"a\", \"b\"]"
于 2013-10-22T14:15:20.707 回答
2

您需要使用awesome_print宝石。

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
    ]
}
于 2013-10-22T14:15:42.260 回答
0

你在这里有几个选择。我假设您在 ERB 模板中执行此操作。

这会将数组转换为 YAML 并将其打印在<pre>标签中

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

这将以可读的 Ruby 语法格式打印出来:

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

查看“调试 Rails 应用程序”了解更多信息。

于 2013-10-22T14:21:07.660 回答
0

这取决于您要将数组用于什么目的。

要在视图中盲目地输出数组,必须在视图中,您应该像这样使用debuginspect

<%= @array.inspect() %>

<%= debug @array %>

然而,如果你想遍历一个数组,或者做类似的事情explode(),你会更适合使用 Ruby 数组函数。

于 2013-10-22T14:55:55.527 回答