Мне нужно найти, присутствует или нет конкретный атрибут, где оператор, который принимает массив в ruby.Как проверить атрибут в массиве в ruby-on-rails
Я пробовал как показано ниже.
User.where(id: [1,2,3]).include?('address')
Мне нужно найти, присутствует или нет конкретный атрибут, где оператор, который принимает массив в ruby.Как проверить атрибут в массиве в ruby-on-rails
Я пробовал как показано ниже.
User.where(id: [1,2,3]).include?('address')
User.where(id: [1,2,3])
возвратит соотношение (который ведет себя в значительной степени как массив, но это другая история). Это означает, что это состоит из объектов - экземпляров класса User
.
Вы проверяете, включает ли эта коллекция строку ('address'
). Это не так, как вы уже догадываетесь.
Если необходимо отобразить все пользователи по адресу, вы можете использовать pluck:
User.where(id: [1,2,3]).pluck(:address)
Вы можете использовать: User.where(id: [1,2,3]).map(&:address)
который будет возвращать массив, содержащий адреса.
И вы можете использовать User.where(id: [1,2,3]).map(&:address).map(&:present?)
, если хотите массив с истинным или ложным значением