Я пытаюсь вернуть все группы, созданные пользователем. Все группы связаны с идентификатором пользователя. Когда я запускаю запрос find_by, он возвращает только первый результат. Есть ли способ вернуть несколько? Спасибо заранее
У find_by в rails есть несколько результатов
Ответ 1
Измените find_by на find_all_by, и он вернет все соответствующие результаты.
Ответ 2
Я пишу отдельный ответ, потому что не могу комментировать ответ Джеймса Лоури, поскольку у меня нет 50 баллов.
find_all_by устарел (Ruby 4.2).
Чтобы получить список активных записей с моделей, выполните:
Model.where(attribute_name: val)
Например, чтобы найти все записи в таблице Vehicle (с именем столбца "имя_модель" ), чтобы значение model_name было "Audi", do
@vehicles = Vehicle.where(model_name: "Audi")
Вы можете повторить их так:
<% @vehicles.each do |vehicle| %>
Ответ 3
Я думаю, что find_all_by теперь может быть устаревшим (по крайней мере, я не мог заставить его работать). Я считаю, что функция "where" теперь рекомендуется
where("name LIKE ?","%#{search}%")
where(instructor_id: params[:choosen_instructor_id])
where ("id = ?",id_val)
Если вы не знаете, то? и список параметров - это предотвращение SQL-инъекций
Ответ 4
Пользовательский класс имеет id как первичный ключ.
который хранится как user_id в классе Group
Затем, чтобы найти все группы, связанные с этим пользователем, можно найти как.
@Группы = Group.find_all_by_user_id (идентификатор_пользователь)