@eldar_web

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

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

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

@autos.each do |auto|
    if(auto.weight < 1000)
       @autos << auto --- так не работает
    end
end
  • Вопрос задан
  • 167 просмотров
Пригласить эксперта
Ответы на вопрос 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")? Просто вы в цикле сначала выбираете все, а потом хотите оставить только те, которые удовлетворяют условию и засунуть в тот же массив обратно. Хотя такое обычно не спрашивают)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы