ruby on rails连接两个活动记录对象

时间:2010-06-24 22:39:46

标签: ruby-on-rails ruby

我有两个复杂的rails(AR)查询来自我有时想要连接的两种不同的方法。在每个对象中返回的数据结构是相同的,我只想将一个附加到另一个对象上。

这是一个简化的例子(不是我的实际代码):

 @peep1 = Person.find(1)

 @peep2 = Person.find(2)

认为这样的事情会起作用:

 @peeps = @peep1 << @peep2

或者

 @peeps = @peep1 + @peep2

上面只是一个简单的例子 - 加入查询等在我的情况下不起作用。

修改: 也许连接是错误的术语。

这是我想要的输出:

说@ peep1有:
first_name:鲍勃 last_name:史密斯

和@ peep2有:
first_name:乔
last_name:约翰逊

我希望将这些组合成第三个对象。因此,如果我遍历@peeps,它将包含来自两个先前对象的数据:

@peeps有:
first_name:鲍勃 last_name:史密斯
first_name:乔
last_name:约翰逊

谢谢!

2 个答案:

答案 0 :(得分:6)

坦率地说,你所描述的任何内容都没有任何意义:)

@peep1@peep2分别代表一个对象 - 数据库中的一行。

没有任何意义可以将它们有意义地结合起来。

你可以制作两者的数组。

@all_peeps = [@peep1, @peep2]

然后迭代它。

@all_peeps.each do |peep|
  print peep.first_name
end

答案 1 :(得分:1)

这对我有用:

> @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