0

我有两张桌子,即学生表格和城市。城市表有 2 列 'id' 和 'name'。我将城市表中的“id”存储在我的学生表格列“城市”中

我必须通过加入“学生表格”和“城市”表来显示学生所在城市的列表。

如何连接这两个表并从城市表中获取城市名称以获取存储在 studentform 表的“城市”列中的相应 ID。

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

class StudentForm < ActiveRecord::Base
   has_many :cities
end

class City < ActiveRecord::Base
  belongs_to :student_form
end
4

1 回答 1

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

在您的示例中,每个StudentFormhas_many:citiesCity需要引用StudentForm(a column student_form_id)。

于 2013-05-28T07:17:51.547 回答