0

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

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

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

我正在构建一个表单,让用户上传一些关于Airplane的信息,他们只需选择飞机注册(呼号),然后他们将获得一个列表来选择它所在的航空公司

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

@airplane = Airplane.find_by_register(params[:register])
@airplane_switches = @airplane.airplane_switches # Here I need to join also each Airline.name

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

4

1 回答 1

2

这应该有效:

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

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

airplane_switch.airline_name
于 2013-07-25T14:59:04.717 回答