@maxprof
Студент

Как связтать 2 таблицы в Rails?

Здравствуйте, есть 2 таблицы.
1. Таблица доктора
2. Таблица пациента
Сокращенно выглядят так
create_table "doctors", force: :cascade do |t|
t.string "email", default: "", null: false
t.string "doctor_first_name"
t.string "doctor_second_name"
end
create_table "users", force: :cascade do |t|
t.string "name"
t.string "surname"
t.integer "age"
t.boolean "status"
t.date "enter_date"
t.text "diagnoz"
t.integer "doctor_id"
t.string "doctor_first_name"
t.string "doctor_second_name"
end

Добавлять нового пациента может только доктор. Следовательно если докторов много и пациентов много, я хочу выводить таблицу всех пациентов и в одной из колонок указывать имя лечащего доктора.
Сокращенно вывод выглядит так
<td><%= user.name %></td>
<td><%= user.surname %></td>
<td><%= user.age %></td>
<% if user.status == true %>
<td>Здоровый</td>
<% else %>
<td>Больной</td>
<% end %>
<td><%= user.enter_date %></td>
<td><%= user.doctor_first_name %></td>
<td><%= user.doctor_id %></td>
<td><%= user.diagnoz %></td>

На выходе получаем готовую таблицу, но с пропусками на месте столбика doctor_first_name. То есть например doctor_id(ID доктора который добавил пациента) выводится верно, а doctor_first_name пропускается??
  • Вопрос задан
  • 124 просмотра
Решения вопроса 1
nbekseitov
@nbekseitov
Ruby developer
не user.doctor_first_name, а user.doctor.doctor_first_name
и нужно указать связь belongs_to :doctorу модели user
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы