[英]Ruby/Rails 3: Turning a set of object attributes into an array
@video = Video.find(params[:id])
@lengths = @video.each do |i|
@length = i.length * 60
end
首先,我假设@video会有一个,但是却出现了这个错误:
undefined method `each' for #<Video:0x4738428>
其次,有没有可以替代最后三行的Ruby单线魔术?
@video在这种情况下不是数组,而是一个对象,因为您要求Video模型仅返回一个视频,该视频具有在params数组中指定的ID。
如果您要从数据库中检索所有视频,请执行以下操作:
@video = Video.all
现在@video将是视频对象的数组。
Pizzicato很好地回答了您的问题,但这是我的两分钱:
如果您想知道对象的类,可以执行以下操作:
p Video.find(params [:id])。class
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.