ruby-on-rails - rubyonrails - ruby on rails tutorial
Rails 4 RelaciĆ³n#todo desaprobaciĆ³n (3)
Camino anidado
Post.order(''created_at DESC'').limit(5).to_a
En mi aplicación creé una función de publicaciones recientes.
@recentposts = Post.all(:order => ''created_at DESC'', :limit => 5)
Esta variable crea algunos problemas. Cuando realizo pruebas tengo el siguiente error:
ADVERTENCIA DE DEPRESIÓN: Relación # todo está en desuso. Si desea cargar ansiosamente una relación, puede llamar a #load (por ejemplo,
Post.where(published: true).load
). Si desea obtener una matriz de registros de una relación, puede llamar a #a_a (por ejemplo,Post.where(published: true).to_a
). (llamado desde show en /home/mateusz/rails4/Bloggers/app/controllers/users_controller.rb:18)
Estaba buscando una solución en Google, pero no la encuentro ...
Solo escribe:
@recentposts = Post.order(''created_at DESC'').limit(5)
El to_a
no es explícitamente necesario, ya que los datos se cargan de forma diferida cuando es necesario.
Una llamada a Post.all
devolverá una ActiveRecord::Relation
, que se cargará de forma diferida por defecto. Al llamar a Post.all.load
se devolverá una ActiveRecord::Relation
Post.all.load
carga. Finalmente, al llamar a Post.all.to_a
se devolverán todos los registros en una matriz.
En tu caso, harías:
Post.order(''created_at DESC'').limit(5).to_a
que devolvería una matriz de las primeras 5 created_at
, ordenadas por created_at
en orden descendente.