Model.to_a抛出未定义的方法to_a

时间:2014-05-06 10:41:46

标签: ruby-on-rails ruby-on-rails-4

我想解决这个Rails 4弃用警告:

不推荐使用Relation#all。如果你想加载一个关系,你可以调用#load(例如Post.where(published:true).load)。如果要从关系中获取一组记录,可以调用#to_a(例如Post.where(已发布:true).to_a)。

因此,当我将Model.all转换为Model.to_a时,它会抛出未定义的方法to_a。

当我尝试使用Model.scoped.to_a时,它的作用类似于where和scope chain。

我应该通过范围还是有更好的解决方案?

1 个答案:

答案 0 :(得分:5)

如果你真的想要一个数组,你应该使用:

Model.all.to_a

由于Rails 4 all方法返回关系,因此不推荐使用Relation#all