gpt4 book ai didi

ruby-on-rails - Ruby on Rails - 我如何将页面顶部显示的帖子顺序更改为最新?

转载 作者:数据小太阳 更新时间:2023-10-29 07:25:38 26 4
gpt4 key购买 nike

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

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

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

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>

房子.rb -

class House < ActiveRecord::Base
validates :title, presence: true
validates :price, presence: true
validates :description, presence: true
validates :image, presence: true
end

最佳答案

顺序添加到查询中。

@houses = House.page(params[:page]).per(20).order(created_at: :desc)

更好的是,您应该避免在 Controller 中直接链接多个作用域。这种方法很难测试。创建自定义方法。

class House < ActiveRecord::Base
# ...

def self.listing(page)
order(created_at: :desc).page(params[:page]).per(20)
end
end

并在你的 Controller 中调用它

@houses = House.listing(params[:page])

这样,您可以通过单元测试分别测试listing和controller。

附带说明一下,即使你是初学者,也不应该跳过在编写代码之前阅读基础书籍和官方文档的好习惯。 ;)

关于ruby-on-rails - Ruby on Rails - 我如何将页面顶部显示的帖子顺序更改为最新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28320826/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com