如何将两个变量(同一个对象的实例)合并为一个

时间:2018-03-10 23:37:19

标签: ruby-on-rails ruby activerecord

我在视图中使用两个实例变量,如bellow:

c

我需要将这两个变量合并为一个@conversations_user = Conversation.user(current_user.id) @conversations_professional = Conversation.professional(professional.user.id) ,然后在最后一条消息的时候对它们进行排序。

是否可以将@conversation_all@conversation_user合并到@conversation_professional

1 个答案:

答案 0 :(得分:0)

您可以使用查询在SQL中执行此操作。有关详细信息,请参阅this answer

@conversation_all = Conversation.user(current_user.id).or(Conversation.professional(professional.user.id))

如果你已经将它们加载到ruby端,即已经进行了SQL命中,你可以将两者合并为union operation

@conversation_all = @conversations_user | @conversations_professional 

尽管如此,请记住,这将在ruby中完成,而不是在纯SQL中执行。但是在Ruby中执行它,一旦你在内存中有数据,在SQL中执行它是没有意义的。