ruby on rails объединяет два объекта активных записей - PullRequest
1 голос
/ 25 июня 2010

У меня есть два сложных запроса rails (AR) от двух разных методов, которые я иногда хочу объединить. Структура данных, возвращаемых в каждом объекте, одинакова. Я просто хочу добавить один к другому.

Вот упрощенный пример (не мой настоящий код):

 @peep1 = Person.find(1)

 @peep2 = Person.find(2)

Думал, что-то вроде этого будет работать:

 @peeps = @peep1 << @peep2

или это

 @peeps = @peep1 + @peep2

Выше приведен лишь упрощенный пример - объединение запросов и т. Д. Не будет работать в моем случае.

Edit: Возможно объединение - неправильный термин.

Вот вывод, который я хотел бы:

Скажите, что @ peep1 имеет:
имя: Боб
фамилия: Смит

и @ peep2 имеет:
имя: Джо
фамилия: Джонсон

Я хочу, чтобы они были объединены в третий объект. Поэтому, если я переберу @peeps, он будет содержать данные обоих предыдущих объектов:

@ peeps имеет:
имя: Боб
фамилия: Смит
имя: Джо
фамилия: Джонсон

Спасибо!

Ответы [ 2 ]

6 голосов
/ 25 июня 2010

Если честно, то, что вы описываете, не имеет никакого смысла:)

@peep1 и @peep2 каждый представляет один объект - одну строку в базе данных.

Нет никакого смысла, в котором они могут быть осмысленно объединены.

Вы можете создать массив из них обоих.

@all_peeps = [@peep1, @peep2]

И затем выполнить итерации по этому.

@all_peeps.each do |peep|
  print peep.first_name
end
1 голос
/ 16 марта 2011

Это сработало для меня:

> @loop_feed = @job.bids.all
> @bidadd = [] 
> @loop_feed.each do |loop_feed|   
> compare_id = loop_feed.user_id
>     @user_search.each do |user|
>       if compare_id == user.id 
>         @bidadd = [@bidadd, loop_feed].flatten
>       end
>     end 
> end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...