Что возвращается при вызове "где"?

У меня следующий вопрос, пусть

 @post=Post.where(title: "title1")

что должно быть @post существует ли title1 или нет? Как я могу проверить, вернул ли "где" какой-либо элемент?

В моем заявлении я только что позвонил

  if(@post) .... else .... end

но это всегда входит в другое

1 ответ

Решение

Пытаться:

@post=Post.where(title: "title1").first

затем @post будет либо Post объект с title = "title1" или же nil,

.where возвращает объект ActiveRecord_Relation, который является результатом фильтрации текущего отношения в соответствии с условиями в аргументах.

Альтернативой является использование find_by, как предложено @D-side в комментариях:

@post = Post.find_by(title: "title1")
Другие вопросы по тегам