Я работаю над системой, которая отслеживает болезни и симптомы, связанные с ними через Ruby on Rails. У меня есть таблица «болезни» и таблица «симптомы», и у них есть отношение many_to_many через таблицу симптомов. На данный момент я работаю над страницей, на которой отображается одна запись таблицы "symptoms_illnesses". Эта таблица имеет две колонки: disease_id и symptom_id.Отображение данных из нескольких таблиц в Rails
Мне нужен способ показать болезнь и симптом, соответствующие ID.
Пример: "болезнь" таблица имеет "Common Cold" под id = 1
"симптом" таблицы имеет "Fever" под id = 1
"symptoms_illness" таблица имеет illness_id = 1
и symptom_id = 1
.
Я хочу, чтобы страница "symptoms_illness/1" отображала "Common Cold" и "Fever", но я не вижу очевидного способа сделать это. Другие темы на этом сайте, похоже, не удовлетворены удовлетворительным образом.
Edit 1: Я ничего не добавляет к шоу действий, кроме "по умолчанию"
def show
@symptoms_illness = Symptoms_illness.find(params[:id])
end
Не могли бы вы разместить то, что находится в действии 'show' в вашем контроллере' симптомов_illness'? – brito
Добавлено в сообщение, там не так много, просто по умолчанию. На странице «Показать» отображаются только идентификаторы (1 и 1) –
'find' возвращает первый результат запроса. Чтобы получить все результаты, вы должны использовать 'where', например:' @symptoms_illness = Symptoms_illness.where (id: params [: id]) '. Проверьте [этот вопрос] (http://stackoverflow.com/questions/9574659/rails-where-vs-find) для получения дополнительной информации о 'find' и' where'. – brito