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
):
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>