Rails 'includes' 并与belongs_to关联'where'



我有两个模型:PassportVisa和Country。

<<p> 国家模型/strong>
class Country < ActiveRecord::Base
  attr_accessible :iso, :name
  has_many :passport_visa, foreign_key: :country_id
end
<<p> PassportVisa模型/strong>
class PassportVisa < ActiveRecord::Base
  belongs_to :country, foreign_key: :country_id
end

我试图像这样查询护照签证模型:

@passport_visa_supplement_o   = PassportVisa.includes(:assets).where(:visa_type => 'Official' ,:assets => {:pdf_type => 'supplement'}).order("country ASC")

但是它说:

PG::Error: Error: column "country"不存在

这是因为在我的PassportVisa表上,我只能访问country_id。使用相同的查询(进行一些调整),我如何自动获得国家名称?

:assets是我用来上传的另一个模型,它应该留在那里。

连接中没有包含国家/地区表。

如果您想订购国家名称,只需输入

@passport_visa_supplement_o = PassportVisa.includes([:assets, :country]).uniq.where(:visa_type => 'Official' ,:assets => {:pdf_type => 'supplement'}).order("countries.name ASC")

我添加了.uniq因为外连接可以有重复

最新更新