1

课程:

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)

我得到 ActiveRecord::Relation

[
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

4

1 回答 1

1

试试这个

 >> 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] }
于 2013-01-31T12:36:05.287 回答