对于两个不同的视图具有不同的数据库排序顺序(default_scope)

Jet59black

在我的模型(pins.rb)中,我有两个排序顺序:

default_scope order: 'pins.featured DESC' #for adding featured posts to the top of a list
default_scope order: 'pins.created_at DESC' #for adding the remaining posts beneath the featured posts

这种排序顺序(上方)是我希望“引脚视图”(index.html.erb)看起来的样子。这只是所有用户帖子的列表。

在我的“用户视图”(show.html.erb)中,我使用相同的模型(pins.rb)仅列出current_user引脚。但是,我想按排序顺序忽略“功能”默认作用域,而仅使用第二个作用域:

default_scope order: 'pins.created_at DESC'

我该怎么做?我试图做这样的事情:

default_scope order: 'pins.featured DESC', only: :index
default_scope order: 'pins.created_at DESC'

但是那不行...

更新

我更新了模型以定义范围:

scope :featy,  order: 'pins.featured DESC'
default_scope order: 'pins.created_at DESC'

并将我的图钉视图更新为:

<%= render @pins.featy %>

但是,现在当我打开大头针视图时,出现错误:

undefined method `featy' for #<Array:0x00000100ddbc78>
迈克尔·林奇

我建议考虑做以下事情:

Pins.rb

这将使该特征位于列表的顶部,并在创建它们时对它们进行第二种排序。(请注意两种按布尔值排序的方法)

class Pin < ActiveRecord::Base
  belongs_to :user

  default_scope  order: 'created_at DESC'
  # Method 1      
  scope :featy,  order('featured DESC, created_at DESC')
  # Method 2
  # scope :featy,  order('(case when featured then 1 else 0 end) DESC, created_at DESC')
end

User.rb

class User < ActiveRecord::Base
  has_many :pins
end

UsersController.rb

class UsersController < ApplicationController
  def show
    @user = User.find(params[:id])
    # Pins are accessed via: @user.pins
    # These should be sorted by `created_at DESC` as that is the default_scope
  end
end

users / show.html.erb这是所有用户引脚,按以下类别排序created_at desc

<%= @user.pins %>

PinsController.rb

class UsersController < ApplicationController
  def index
    # Pins sorted by created_at: @pins = Pin.all
    # Pins sorted by created_at with all featured on top: 
    @pins = Pin.featy
  end
end

pins / index.html.erb: 这是所有pin的排序方式created_at desc,所有功能都位于顶部

<%= @pins %>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

两个具有相同结构但命名约定不同的数据库可互换使用

来自分类Dev

在目录数据库中具有两个不同类别ID的产品ID

来自分类Dev

在目录数据库中具有两个不同类别ID的产品ID

来自分类Dev

如何在具有不同版本的两个master数据库之间执行同步(或复制)?

来自分类Dev

流星具有相同代码但不同的mongo数据库的两个服务器实例

来自分类Dev

两个看似相同的数据库如何返回按不同列排序的结果?

来自分类Dev

Android:如何用数据库填充两个不同的列表视图?

来自分类Dev

在具有不同布局的两个数据库之间迁移数据

来自分类Dev

在具有不同布局的两个数据库之间迁移数据

来自分类Dev

对于不同顺序的数据,基数排序算法可能具有不同的运行时?

来自分类Dev

从两个不同的表中选择一个查询Access数据库中具有不同字段的列

来自分类Dev

从两个不同的表中选择一个查询Access数据库中具有不同字段的列

来自分类Dev

如何合并两个具有相同数据但具有不同PK且没有重复字段的数据库?

来自分类Dev

追加两个具有相同列,不同顺序的数据框

来自分类Dev

具有两个不同布局的子视图的ListView

来自分类Dev

Symfony中的同一捆绑包是否可以使用两个具有不同数据库的不同文档管理器?

来自分类Dev

是否可以在一个xpage视图中显示两个不同的数据库文档

来自分类Dev

如何将数据库中的两个不同的表包含到一个视图中?

来自分类Dev

具有来自不同模型的数据但显示在同一个视图上的两个部分视图

来自分类Dev

插入两个不同数据库中的两个表

来自分类Dev

两个不同数据库中两个表之间的多对多关系

来自分类Dev

SQL Merge 连接来自两个不同数据库的两个表

来自分类Dev

从两个不同的表中搜索数据,这两个表在不同的数据库中

来自分类Dev

如何合并来自两个不同数据库的不同表?

来自分类Dev

如何合并来自两个不同数据库的不同表?

来自分类Dev

组合来自不同数据库的两个不同 DbContexts (LINQ)

来自分类Dev

合并来自两个不同数据库的两个子表

来自分类Dev

在两个数据库的两个不同表中插入相同的Guid键

来自分类Dev

使用结构不同的MySql同步来自两个不同数据库的两个表

Related 相关文章

  1. 1

    两个具有相同结构但命名约定不同的数据库可互换使用

  2. 2

    在目录数据库中具有两个不同类别ID的产品ID

  3. 3

    在目录数据库中具有两个不同类别ID的产品ID

  4. 4

    如何在具有不同版本的两个master数据库之间执行同步(或复制)?

  5. 5

    流星具有相同代码但不同的mongo数据库的两个服务器实例

  6. 6

    两个看似相同的数据库如何返回按不同列排序的结果?

  7. 7

    Android:如何用数据库填充两个不同的列表视图?

  8. 8

    在具有不同布局的两个数据库之间迁移数据

  9. 9

    在具有不同布局的两个数据库之间迁移数据

  10. 10

    对于不同顺序的数据,基数排序算法可能具有不同的运行时?

  11. 11

    从两个不同的表中选择一个查询Access数据库中具有不同字段的列

  12. 12

    从两个不同的表中选择一个查询Access数据库中具有不同字段的列

  13. 13

    如何合并两个具有相同数据但具有不同PK且没有重复字段的数据库?

  14. 14

    追加两个具有相同列,不同顺序的数据框

  15. 15

    具有两个不同布局的子视图的ListView

  16. 16

    Symfony中的同一捆绑包是否可以使用两个具有不同数据库的不同文档管理器?

  17. 17

    是否可以在一个xpage视图中显示两个不同的数据库文档

  18. 18

    如何将数据库中的两个不同的表包含到一个视图中?

  19. 19

    具有来自不同模型的数据但显示在同一个视图上的两个部分视图

  20. 20

    插入两个不同数据库中的两个表

  21. 21

    两个不同数据库中两个表之间的多对多关系

  22. 22

    SQL Merge 连接来自两个不同数据库的两个表

  23. 23

    从两个不同的表中搜索数据,这两个表在不同的数据库中

  24. 24

    如何合并来自两个不同数据库的不同表?

  25. 25

    如何合并来自两个不同数据库的不同表?

  26. 26

    组合来自不同数据库的两个不同 DbContexts (LINQ)

  27. 27

    合并来自两个不同数据库的两个子表

  28. 28

    在两个数据库的两个不同表中插入相同的Guid键

  29. 29

    使用结构不同的MySql同步来自两个不同数据库的两个表

热门标签

归档