Rails: как использовать метод find для произвольного индекса

Я создал модель, которая имеет строку в качестве уникального идентификатора. Я создал миграцию, чтобы добавить индекс для этой строки и установить его как уникальный. Как я могу получить доступ к записи базы данных, просто передав ее строку уникального идентификатора в метод поиска, например

@object = Object.find(params[:unique_id])

На данный момент все, что я получаю, это исключение ActiveRecord::RecordNotFound...

Не удалось найти объект с id = abc

... когда я пытаюсь получить доступ Object.find('abc')

where метод не альтернатива, так как это возвращает мне отношение.

1 ответ

Решение

Object.find(:unique_id) поиск по столбцу object_id; Если вы хотите искать в другом столбце, используйте Object.find_by_[column_name]!(:unique_id), Это вызовет исключение, если запись не может быть найдена, как это было бы find метод.

Другие вопросы по тегам