Задать вопрос
@eldar_web

Как в Rails присваивать массиву объектов другой объект?

Есть модель допустим:
@autos = Auto.all

Я через цикл в условии хочу присвоить к этому @autos другие записи. Как это сделать?

@autos.each do |auto|
    if(auto.weight < 1000)
       @autos << auto --- так не работает
    end
end
  • Вопрос задан
  • 167 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Thinknetica
    Профессиональная разработка на Ruby on Rails
    9 месяцев
    Далее
  • Skillbox
    Ruby on Rails с нуля
    10 месяцев
    Далее
  • Хороший программист
    Интенсив по Ruby on Rails
    5 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
evgenykungurov
@evgenykungurov
Программист Ruby/Rails/Системный администратор
Какие атрибуты имеются в наличии у @autos(у модели) и какие вы хотите присвоить? Допустим:
@autos.map { |auto| auto.my_attr = my_example if auto.weight < 1000 }
Ответ написан
@thepry
Ruby on rails, 1С разработчик
arr = []
@autos.each do |auto|
    arr << auto if auto.weight < 1000 
end

@autos += arr
Ответ написан
может вы хотели это: @autos = Auto.where("weight < 1000")? Просто вы в цикле сначала выбираете все, а потом хотите оставить только те, которые удовлетворяют условию и засунуть в тот же массив обратно. Хотя такое обычно не спрашивают)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
LIAN Москва
от 270 000 до 300 000 ₽
НТЦ ПРОТЕЙ Санкт-Петербург
от 150 000 до 330 000 ₽
Aporia Севастополь
До 150 000 ₽