Ruby / Rails 3:将一组对象属性转换为数组

时间:2011-03-12 15:47:09

标签: ruby-on-rails ruby

@video = Video.find(params[:id])

@lengths = @video.each do |i|
  @length = i.length * 60
end

首先,我认为@video会有一个,但却得到了这个错误:

undefined method `each' for #<Video:0x4738428>

其次,有没有可以替代最后3行的Ruby单线魔术?

2 个答案:

答案 0 :(得分:4)

@video在这种情况下不是一个数组,它是一个对象,因为你要求视频模型只返回一个视频,一个在params数组中给出id的视频。

如果您想要从数据库中检索所有视频,请执行以下操作:

@video = Video.all

现在@video将是一个视频对象数组。

答案 1 :(得分:1)

Pizzicato回答你的问题很好,但这是我的两分钱:

如果您想知道对象的类,您可以这样做:

p Video.find(params [:id])。class