ruby on rails 关于 gem ‘impressionist’(显示访问数量),如何按照访问数量排序——接前面的文章 (gem ‘impressionist’最简单的使用流程)

上一篇文章我们已经说明了如何最简单地使用gem’impressionist‘,但是后来直接使用impressionist_count这个数据进行排序,就会出现报错,因此,我们要找到方法来通过访问量排序

该文章主要参考https://linuxtut.com/en/bec2040f766fc7b079a0/

由于我们使用的对象model是Widget,

所以,第一步

$ rails g migration AddImpressionsCountToWidgets impressions_count:integer

 打开db/migrate/20210805062800_add_impressions_count_to_widgets(根据不同日期显示不同的数字)

class AddImpressionsCountToWidgets < ActiveRecord::Migration[5.2]
  def change
    # 「default:Added "0"
    add_column :widgets, :impressions_count, :integer, default: 0
  end
end

 $ rails db:migrate

 在model文件Widget.rb里添加

is_impressionable 
+ is_impressionable counter_cache: true

这里本人测试的时候,需要在is_impressionable 这一行下面额外添加is_impressionable counter_cache: true,否则无法更新阅读数量,不知道在不同版本会不会有不同,暂未经过更多测试。

然后在需要显示排序的controller controllers/widget_controller.rb

  def index
    @widgets = Widget.all.order("impressions_count DESC")
  end

这样就可以在index页面里,根据访问量从大到小排序了,需要从小到大排序的话就删掉DESC即可

参考原文地址:https://linuxtut.com/en/bec2040f766fc7b079a0/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值