Ruby on rails RubyonRails——我如何将页面顶部显示的文章顺序更改为最新?

Ruby on rails RubyonRails——我如何将页面顶部显示的文章顺序更改为最新?,ruby-on-rails,ruby,rails-activerecord,Ruby On Rails,Ruby,Rails Activerecord,我正在创建一个简单的房屋列表页面,以了解Rails,目前我已经设置了一个AddPost页面,该页面将发布到索引页面,但是最新的帖子将显示在页面底部。我怎样才能颠倒帖子的顺序,在顶部显示最新的帖子 不确定我应该提供哪些代码段,但下面是我的代码: houses_controller.rb- class HousesController < ApplicationController def index @houses = House.page(params[:page]).per(

我正在创建一个简单的房屋列表页面,以了解Rails,目前我已经设置了一个AddPost页面,该页面将发布到索引页面,但是最新的帖子将显示在页面底部。我怎样才能颠倒帖子的顺序,在顶部显示最新的帖子

不确定我应该提供哪些代码段,但下面是我的代码:

houses_controller.rb-

class HousesController < ApplicationController
  def index
    @houses = House.page(params[:page]).per(20)
  end

  def new
    @house = House.new
  end

  def create
    @house = House.new(params.require(:house).permit(:title, :price, :description, :image))
  if @house.save
    redirect_to root_path
  else
    render "new"
  end
  end

end
class HousesController
index.html.erb-

<% @houses.each do |house| %>

  <div class="house">
    <p><%= house.image %></p>
    <h2><%= house.title %></h2>
    <h2><%= house.price %></h2>
    <p><%= house.description %></p>
  </div>
<% end %>

<p><%= paginate @houses %></p>

house.rb-

class House < ActiveRecord::Base
    validates :title, presence: true
    validates :price, presence: true
    validates :description, presence: true
    validates :image, presence: true
end
class House
将订单添加到查询中

@houses = House.page(params[:page]).per(20).order(created_at: :desc)
更好的是,您应该避免在控制器中直接链接多个作用域。这种方法很难测试。创建一个自定义方法

class House < ActiveRecord::Base
  # ...

  def self.listing(page)
    order(created_at: :desc).page(params[:page]).per(20)
  end
end
通过这种方式,您可以使用单元测试分别测试
列表
和控制器


顺便说一句,即使您是初学者,也不应该在编写代码和官方文档之前跳过阅读基础书籍的好习惯

使用
House.order(“created_at DESC”)
计划买一本书,在此期间,我一直在遵循一些非常好的教程。我做到了!我做到了!
@houses = House.listing(params[:page])