ruby-on-rails - Rails 中的链接作用域方法

标签 ruby-on-rails ruby scope

我上传新照片时遇到问题。

我有一个名为 :most_tagged 的​​范围,它显然工作得很好。 照片由most_tagged DESC显示,但是,当我上传有0个标签的新照片时,它会转到顶部(显示在标记最多的照片之前),而不是转到底部并在标记较少的照片之后显示最后一张。

我应该将另一个方法链接到most_tagged范围吗?

class Photo < ActiveRecord::Base
  has_many :tags , dependent: :destroy
  before_destroy { |record| record.tags.destroy_all if record.tags.any? }

  scope :most_tagged, -> { order('tags_count DESC') }
  scope :most_liked, -> { order('cached_votes_up DESC') }

谢谢

最佳答案

您必须使用NULLS LAST选项:

scope :most_tagged, -> { order('tags_count DESC NULLS LAST') }

关于ruby-on-rails - Rails 中的链接作用域方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24042478/

相关文章:

jquery - Bootstrap 3.0 的 DropDown 登录表单

ruby - 使用 ruby​​ 执行半自动化测试

ruby-on-rails - 如何按时间在 rails 中订购多个 ActiveRecords?

javascript - 类型错误 : _this2 is undefined REACTJS

css - 有人可以帮助我使用像 "each"这样的 Rails 迭代器吗?

ruby-on-rails - Rails3 结构、引擎、插件、切片、 gem 、模块..?

ruby-on-rails - 成功登录 DEVISE 后,如何将用户重定向回之前需要登录的操作?

ruby-on-rails - 多对多关系获取的脚手架表

php - 引用:什么是变量范围,哪些变量可从何处访问,什么是“ undefined variable ”错误?

Python 记录器在 atexit 处理程序之前被清理