如何连接2个表并显示所需的列值?

时间:2013-05-27 14:00:35

标签: ruby-on-rails associations

我有2个表,即studentform和cities。 cities表有2列'id'和'name'。我正在我的studentform列'city'

中的cities表中存储'id'

我必须通过加入'studentform'和'cities'表来显示学生列表。

如何加入这两个表并从cities表中获取城市名称,以获取存储在studentform表的“city”列中的相应id。

我尝试了以下方法,但在输出列表中,city列显示了'id'值。如何更改它以显示“名称”?

class StudentForm < ActiveRecord::Base
   has_many :cities
end

class City < ActiveRecord::Base
  belongs_to :student_form
end

1 个答案:

答案 0 :(得分:0)

我是对的,您希望每个StudentForm属于一个 City吗?只有这样,您才能将city_id存储在StudentForm中。但那么你的模型将是:

class StudentForm < ActiceRecord::Base
  belongs_to :city

  delegate :name, to: :city. prefix: true
end

class City < ActiceRecord::Base
  has_many :student_forms
end

您可以使用

访问该城市的表单名称
form = StudentForm.first
puts form.city.name

puts form.city_name

在您的示例中,每个StudentForm has_many :cities,因此City需要引用StudentForm(列student_form_id)。