Classes:
class RefCountry < ActiveRecord::Base
has_many :cities, :class_name => :RefCity, :foreign_key => "country_id", :primary_key => "country_id"
end
class RefCity < ActiveRecord::Base
belongs_to :country, :class_name => :RefCountry, :primary_key => "country_id"
end
所有链接都正常工作。
如果我尝试做
RefCity.joins(:country)
我得到活动记录::关系
[
RefCity country_id: 1306, region_id: 4515, city_id: 67101, name_en: "Ust-Orda">,
RefCity country_id: 1285, region_id: 4483, city_id: 67102, name_en: "Ust-Tarka", ...]
但是,我只想获取数据类型
{city_id1, city_name1, country_id1, country_name1},
{city_id2, city_name2, country_id2, country_name2},
...
{city_idN, city_nameN, country_idN, country_name}
用于 Ajax
试试这个
>> cities = RefCity.joins(:country).select('ref_cities.id, ref_cities.name, ref_cities.country_id, countries.name AS country_name')
>> cities.first.id # city id
>> cities.first.name # city name
>> cities.first.country_id # country id
>> cities.first.country_name # country name
>> cities.map { |city| [city.id, city.name, city.country_id, city.country_name] }