使用来自另一个表的信息对一些数据进行排序

时间:2018-10-22 17:28:40

标签: ruby-on-rails ruby postgresql relationship

还有其他一些问题,就像我的问题一样,但它们都对我没有实际作用。

我有一个Rails项目,其中有3个模型:Unity,City,State,它们之间的关系如下:

class City < ApplicationRecord
  belongs_to :state
  has_many :unities
end

class State < ApplicationRecord
    has_many :cities
end

class Unity < ApplicationRecord
    belongs_to :city
    belongs_to :state, through: :city
end

我希望我可以根据其city.name或state.name来订购我的单位,也可以根据其state.name来订购城市。但我只是想不通。例如,我尝试在StackOverflow上的某个问题中建议使用City.all.joins(:state).order('state.id'),但它给了我missing FROM clause entry for 'city'。我该怎么做?

1 个答案:

答案 0 :(得分:1)

应为order('states.id'),而不是order('state.id')。 Order子句期望表名而不是关联名。