我有两个模型: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
因为外连接可以有重复