【发布时间】:2018-12-31 06:17:40
【问题描述】:
我想在show 页面上显示用户的位置。例如,“您的位置是 195119 中的 1921”。 devise gem有什么有效的方法来做这样的事情吗?
我的想法是在users 表中添加一个额外的列,并使其为每个条目自动递增。但是,我认为有更好的方法可以做到这一点。非常感谢您的帮助和时间。
【问题讨论】:
标签: ruby-on-rails ruby devise ruby-on-rails-5
我想在show 页面上显示用户的位置。例如,“您的位置是 195119 中的 1921”。 devise gem有什么有效的方法来做这样的事情吗?
我的想法是在users 表中添加一个额外的列,并使其为每个条目自动递增。但是,我认为有更好的方法可以做到这一点。非常感谢您的帮助和时间。
【问题讨论】:
标签: ruby-on-rails ruby devise ruby-on-rails-5
您的用户模型有许多记录,这些记录与 id 一起存储,该 id 已经自动递增。添加类似于id的position是没有用的。
您可以通过跟踪用于被删除的少数记录来实现它,并且您希望根据现有记录进行定位。
@position = User.all.ids.sort.index(@user.id)
这里@user 是调用“显示”操作以获取@position 的对象
【讨论】:
如果您有一个位置列,如果某些记录被删除,您可能需要更新它。
给定一个user 对象,您可以进行两次计数查询。
count_1 = User.where("id <= ?", user.id).count
count_1是用户的位置
count_2 = User.count
count_2 是总职位
【讨论】: