如何在table1的zone_id == table2的zone_id中查询数据

时间:2013-09-09 06:06:51

标签: ruby-on-rails-3

表1信息

create_table :zones do |t|
  t.integer :Zone_id
  t.string :Zone_name

  t.timestamps
end

表2信息。

create_table :networks do |t|
  t.integer :zone_id
  t.integer :network_id
  t.string :network_name
  t.integer :local_tb_id
  t.string :interconnect
  t.integer :interconnect_tb_id
  t.string :tonegroup

  t.timestamps
end

2 个答案:

答案 0 :(得分:0)

您应该依赖id表中的主键,通常称为zones,而不是zone_id。在您的Zone模型中,您将拥有以下内容:

has_many :networks

有关详细信息,请阅读Associations Guide

答案 1 :(得分:0)

zone = Zone.find(1)  # where id = 1
networks = zone.networks  # This will return all networks where network.zone_id = 1

您需要了解有关rails关联的更多信息。见here

编辑:

适用于所有区域

@zones = Zone.joins(:networks).all
@zones.each do |zone|
  zone.networks # Here is the each zones network
end