【问题标题】:Rails 3 default_scope sort by foreign key object name?Rails 3 default_scope 按外键对象名称排序?
【发布时间】:2011-05-30 14:31:56
【问题描述】:

我在弄清楚这一点时遇到了一些麻烦:我有一个模型Machine,它在locations 表上有一个外键,我希望Machine 的默认范围按location.name 排序。这可能吗?

【问题讨论】:

    标签: ruby-on-rails sorting activerecord scope


    【解决方案1】:

    是的,使用连接到您的其他表。

    class Machine < ActiveRecord::Base
    
      default_scope joins(:location).order('locations.name')
    
    end
    

    确保您在joins 中调用的关系与您在Machine 模型中定义的关系相匹配。

    【讨论】:

      【解决方案2】:

      是的,在您的机器型号中:

      has_many :locations, :order => "name ASC"
      

      【讨论】:

      • 这定义了两个表之间的关系,它不会按照它们关联的位置名称来排序机器记录。
      • 似乎我不明白这个问题。我在那里给出答案,因为订购子对象仍然很有用。
      • @Douglas,你是绝对正确的。在我看来,仅仅一个评论就足以让我重新阅读这个问题:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-19
      • 2019-01-04
      • 2011-02-03
      • 2011-09-03
      • 2021-06-06
      • 2015-06-21
      相关资源
      最近更新 更多