首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ROR应用程序-尝试更改默认范围顺序

ROR应用程序-尝试更改默认范围顺序
EN

Stack Overflow用户
提问于 2014-03-27 23:42:16
回答 1查看 68关注 0票数 0

我有一个包含表ExchangesCompanyCompany_Listings的数据库。

代码语言:javascript
复制
Exchanges table
  name
  full_name

Companies table
  name
  full_name
  exchange_id

Company_Listings table
  company_id
  exchange_id
  company_code
  option_name
  [...] other columns

如果上市是一家公司,它将有一个company_code,如必和必拓,如果它是一个公司选项,它将有一个option_name,如BHPXX,但没有company_code。两家公司都通过company_id链接到“破碎的希尔比利顿有限公司”。

代码语言:javascript
复制
Exchanges model
  has_many :companies, dependent: :destroy
  has_many :company_listings, dependent: :destroy 

Companies Model 
  belongs_to :exchange
  has_many :company_listings,

Company_Listing Model
  belongs_to :company
  belongs_to :exchange
  default_scope { order('exchange_id ASC', 'company_code ASC', 'option_name ASC') }

默认范围命令公司上市,如必和必拓,CBA .BHPXX。

我试图得到这类,以便它给必和必拓,BHPXX,CBA。任何感激的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-28 03:08:10

试试这个:

default_scope { order('company_code ASC', 'option_name ASC', 'exchange_id ASC')

如果由于空值不起作用,您可能需要在这里查看它是如何完成的:

ORDER BY ASC with Nulls at the Bottom

MySQL Orderby a number, Nulls last

default_scope { order('-company_code DESC', '-option_name DESC', 'exchange_id ASC')

编辑:在这里,考虑到company_code和option_name本质上不是数字的,所以上面的链接可能不起作用,但是链接提供了很多其他的方法来做到这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22701500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档