0
Если я делаю Model.find_by_column(column_data)
, то возвращается Nil
, но при копировании сгенерированного SQL в консоль rails db
(postgresql db shell) появляется запись.Rails find_by возвращает ноль, но запись существует
Кто-нибудь знает, что может быть неправильным?
Пример кода:
garden = Garden.find_by_name("Zen Garden")
puts garden.inspect
Возвращает:
SELECT "gardens".* FROM "gardens" WHERE "gardens"."name" = 'Zen Garden' LIMIT 1
Nil
Но в базе данных:
SELECT "gardens".* FROM "gardens" WHERE "gardens"."name" = 'Zen Garden' LIMIT 1;
id | name | created_at | updated_at
----+------------+----------------------------+----------------------------
82 | Zen Garden | 2014-10-23 03:56:25.614274 | 2014-10-23 03:56:25.614274
Что может быть не так?
Предполагаете, что вы использовали Garden.find_by в консоли rails? Причина, по которой я спрашиваю, заключается в том, что мне интересно, является ли среда одинаковой в обоих контекстах. Вряд ли, но возможно. – stefvhuynh
Чтобы отказаться от этой опции, попробуйте следующее: Garden.where ('name LIKE?', '% Zen Garden%'). Возможно, есть место в конце или в начале имени. Какую версию Rails вы используете? –