Я очень новичок в рельсах и работаю с базами данных в целом. Я пытаюсь просто отобразить список всех членов resident_staff, которые являются "менеджерами" и hallName из hallOfResidence, в которых они работают. Residence_staff - это 1 таблица с полем "fName" и названием зала в качестве внешнего ключа для таблица hallOfResidence. Как я могу присоединиться к двум таблицам и отобразить их на экране?
В настоящее время я только показываю список всех членов residence_staff.
Модель персонала:
class ResidenceStaff < ApplicationRecord
validates :fName, presence: true
end
Модель залов:
class HallOfResidence < ApplicationRecord
end
контроллер:
class HomeController < ApplicationController
def index
@residence_staff = ResidenceStaff.all
end
end
Посмотреть
<h1>Title</h1>
<div>
<% @residence_staff.each do |residence_staff| %>
<%= residence_staff.fName%>
<% end %>
</div>
Caveat Emptor: код не протестирован.
Учитывая что-то вроде (вы действительно должны использовать hall_of_residence_id
как внешний ключ):
# == Schema Information
#
# Table name: residence_staffs
#
# id :integer not null, primary key
# first_name :string
# hall_of_residence_id :integer
# position :string
# created_at :datetime not null
# updated_at :datetime not null
#
class ResidenceStaff < ApplicationRecord
validates :first_name, presence: true
belongs_to :hall_of_residence
class << self
def managers
where(position: 'manager')
end
end
end
А также:
# == Schema Information
#
# Table name: hall_of_residences
#
# id :integer not null, primary key
# name :string
# created_at :datetime not null
# updated_at :datetime not null
#
class HallOfResidence < ApplicationRecord
has_many :residence_staffs
end
Похоже, что вы должны быть в состоянии сделать что - то подобное (см руководства для получения информации о includes
в includes
):
class HomeController < ApplicationController
def index
@residence_staffs = ResidenceStaff.all
@residence_staff_managers = ResidenceStaff.managers.includes(:hall_of_residence)
end
end
А также:
<h1>Title</h1>
<div>
<% @residence_staff_managers.each do |residence_staff| %>
<%= residence_staff.first_name>
<%= residence_staff.hall_of_residence.name >
<% end %>
</div>
name of the hall as a foreign key
- хм. Это звучит плохо. Кроме того,fName
не является обычным наименованием. Как вы определяете, является лиResidenceStaff
менеджером?