我有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
答案 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
)。