ruby-on-rails – Ruby on Rails – 如何更改页面顶部显示的最新
发布时间:2020-12-17 03:41:42 所属栏目:百科 来源:网络整理
导读:我正在创建一个简单的房屋列表页面来掌握Rails,我目前有一个添加帖子页面设置,它发布到索引页面,但最新的帖子显示在页面的底部.我怎么能颠倒我的帖子的顺序来显示顶部的最新帖子? 不确定我应该提供哪些代码片段,但下面是我的代码: houses_controller.rb –
我正在创建一个简单的房屋列表页面来掌握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> house.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) 更好的是,您应该避免直接在控制器中链接多个范围.这种方法很难测试.创建自定义方法. class House < ActiveRecord::Base # ... def self.listing(page) order(created_at: :desc).page(params[:page]).per(20) end end 并在你的控制器中调用它 @houses = House.listing(params[:page]) 通过这种方式,您可以使用单元测试单独测试列表和控制器. 作为旁注,即使您是初学者,在编写代码和官方文档之前,也不应该忽略阅读基本书籍的好习惯. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |