Mat*_*ski 14 ruby-on-rails ruby-on-rails-4 rails-activerecord
在我的应用中,我创建了最近的帖子功能.
@recentposts = Post.all(:order => 'created_at DESC', :limit => 5)
Run Code Online (Sandbox Code Playgroud)
这个变量有些麻烦.当我运行测试时,我有以下错误:
弃用警告:不推荐使用Relation#all.如果您想要加载关系,可以调用#load(例如
Post.where(published: true).load
).如果要从关系中获取记录数组,可以调用#to_a(例如Post.where(published: true).to_a
).(来自/home/mateusz/rails4/Bloggers/app/controllers/users_controller.rb:18上的节目)
我在Google上搜索解决方案,但我找不到它......
nat*_*vda 19
写吧:
@recentposts = Post.order('created_at DESC').limit(5)
Run Code Online (Sandbox Code Playgroud)
这to_a
不是明确必要的,因为数据在需要时是延迟加载的.
blu*_*llu 10
一个调用Post.all
将返回一个ActiveRecord::Relation
,默认情况下会懒惰加载.呼叫Post.all.load
将返回一个急切的负载ActiveRecord::Relation
.最后,调用Post.all.to_a
将返回数组中的所有记录.
在你的情况下,你会做:
Post.order('created_at DESC').limit(5).to_a
Run Code Online (Sandbox Code Playgroud)
这将返回前5个帖子的数组,按created_at
降序排序.
归档时间: |
|
查看次数: |
9149 次 |
最近记录: |