调用.name方法不会返回对象的名称

时间:2014-03-18 13:53:32

标签: ruby-on-rails ruby

我正在尝试让类别对象返回名称"喜剧",但正在返回"类别"相反,当我调用名称方法。不知道在哪里寻找解决这个问题所以如果有人能指出我正确的方向,我将不胜感激。

来自命令链接的pry响应:

[17] pry(#<QueueItem>)> category
=> [#<Category id: 1, name: "Comedy", created_at: "2014-03-17 19:21:34", updated_at: "2014-03-17 19:21:34">]
[18] pry(#<QueueItem>)> category.name
=> "Category"

谢谢!

2 个答案:

答案 0 :(得分:2)

从上面的代码和输出看来,类别变量似乎存储了一个类ActiveRecord对象的数组。所以我们需要通过以下代码使用该对象。

category.first.name

答案 1 :(得分:0)

只是澄清一下,如果我们尝试使用控制台category.class,我们应该得到:

> category.class
# ActiveRecord::Relation::ActiveRecord_Relation_Category

这就是为什么它没有为Array抛出Error,未定义的方法name,只是因为它不是一个数组,而Rails Active Record Relations确实有一个名称方法

实际上,我从未使用pry,但默认的rails控制台会在数据之前转储类名:

> category
#<ActiveRecord::Relation [#<Category id: 1, ....>, #<Category id:2 ...>, .. etc]

这非常有用。