将模型属性添加到查询结果中

时间:2013-07-25 14:50:50

标签: ruby-on-rails activerecord

我有三个型号,它们看起来像(简化):

class Airline < ActiveRecord::Base
  attr_accessible :name
  has_many :airplanes
  has_many :airplane_switches
end

class Airplane < ActiveRecord::Base
  attr_accessible :airline_id, :register
  belongs_to :airline
  has_many :airplane_switches
end

class AirplaneSwitch < ActiveRecord::Base
  attr_accessible :airline_id, :airplane_id
  belongs_to :airplane
  belongs_to :airline
end

飞机可能出现在某些航空公司中,因此我需要另一个模型来指示飞机是否在一个或多个中航空公司

我正在构建一个表单,让用户上传一些关于飞机的信息,他们只需选择飞机注册表(呼号),然后他们就会得到一个列表,可以选择航空公司< / strong>它是。

这将适用于AJAX请求。但是,我试图弄清楚如何从我的控制器显示航空公司名称,以通过获取另一个JSON文件来避免另一个AJAX调用,只是为了获得基于{{1}的航空公司的名称} AirplaneSwitch

airline_id

我认为这种方式会更有效率,但我不知道是否可以这样做。

1 个答案:

答案 0 :(得分:2)

这应该有效:

@airplane.airplane_switches.select('*, airlines.name as airline_name').joins(:airline)

假设您有变量airplane_switch,其中包含以此方式获取的AirlineSwitch实例。获取您的航空公司名称所需要做的就是:

airplane_switch.airline_name